URLRead
URLRead[url]
URLにリクエストを送り,応答を復唱し,これを応答オブジェクトとして返す.
URLRead[assoc]
成分とメタデータ要素の連想から作られたURLにリクエストを送る.
URLRead[HTTPRequest[…]]
記号HTTPRequestオブジェクトで指定されたリクエストを送る.
URLRead[req,"elem"]
応答からの要素 elem のみを返す.
URLRead[req,{"elem1","elem2",…}]
要素 elemiの値の連想を返す.
URLRead[{req1,req2,…},…]
リクエスト reqiを並列で送り,得られた結果のリストを与える.
詳細とオプション
- URLRead[url]の url は,文字列,URLオブジェクトあるいはクラウドオブジェクトでよい.
- URLは,連想中の次の成分を与えることで指定できる.
-
"Scheme" URLスキーム "User" ユーザ情報 "Domain" ドメイン名またはホスト "Port" ポート番号(整数で) "Path" パスのリストまたは文字列 "Query" クエリ文字列またはパラメータと値のペアのリスト - 次の追加的な実体も,HTTPRequest中と同じように連想に含むことができる.
-
Method "GET" HTTPリクエストに使うメソッド "Body" "" 送信するメッセージボディのコンテンツ "ContentType" Automatic リクエストのコンテントタイプヘッダ "Username" "" リクエストに使用するユーザ名 "Password" "" リクエストに使用するパスワード "Cookies" Automatic サーバに送信するクッキー "UserAgent" Automatic 送信するユーザエージェント文字列 "Headers" {} サーバに送信するヘッダのリスト - "Body"の設定には以下が使える.
-
"string" 文字通り送信する文字列 ByteArray[…] 文字通り送信するバイト配列 {b1,b2,b3,…} 文字通り送信するバイトリスト {"par1""val1","par2""val2",…} URL符号化で送信するパラメータと値のリスト {"par1"{"val11",…},…} 単一のパラメータに関連付けられた複数の値のリスト <"key1"val1,"key2"val2,… > パラメータと値のリストの代替形 {"par1"File[…],"par2"File[…],…} マルチパート符号化で送信されるファイル {"par1"assoc1,…} 各部分の詳細指定があるマルチパート符号化 - マルチパート符号化における各部分の詳細指定は,次の要素の連想として与えられる.
-
"Content" 文字列,バイト配列,ファイルオブジェクト等としてのコンテンツ "Name" 各部分に割り当てる名前 "MIMEType" 各部分に割り当てるMIMEタイプ - "Cookies"->Automaticの設定は,url に対応するドメインについての$Cookiesからのクッキーを送信するように指定する."Cookies"は,クッキーを表す明示的な連想のリストを与えることもできる."Cookies"->Noneはクッキーを送信しないように指定する.
- デフォルトの"UserAgent"は,大抵の場合は"Wolfram HTTPClient xxxx"である.xxxxはバージョン番号である.
- "Headers"の設定は規則のリストまたは連想でよい.
- URLRead[req,elem]では,次の要素を使うことができる.
-
"Body" 文字列としての応答のボディ "BodyByteArray" バイト配列として応答の生のボディ "BodyBytes" バイト値のリストとしての応答の生のボディ "Headers" 応答で受信したヘッダのリスト "Cookies" 応答で受信したクッキーのリスト "ContentType" コンテントタイプヘッダ "StatusCode" サーバが返した状態コード "StatusCodeDescription" 状態コードのテキストでの説明 "Stream" 応答のボディを読むストリームオブジェクト {elem1,elem2,…} 要素 elemiの連想 Automatic 記号HTTPResponseオブジェクト All 全要素の連想 - URLReadは次のオプションをサポートする.
-
Authentication Automatic 送信する認証情報 CharacterEncoding Automatic 受信した文字列の文字コード ConnectionSettings Automatic 接続のスピードその他の設定 CookieFunction Automatic 受信した各クッキーに適用する関数 FollowRedirects True HTTPリダイレクトをフォローするかどうか Interactive True インタラクティブな認証ダイアログを許可するかどうか TimeConstraint Infinity 応答の待ち時間 VerifySecurityCertificates True SSLセキュリティ証明を確かめるかどうか - CharacterEncoding->"enc"の設定は,サーバへ送信する前にリクエスト中のすべての文字列を文字コード enc を使って符号化するように指定する.
- CharacterEncoding->Noneの設定は,サーバへ送信する前に文字列に変更を加えないように指定する.
- CharacterEncoding->Automaticとすると,"ContentType"要素が指定されている場合は文字コードがそこから取られる.それ以外の場合は"UTF8"が使われる.
- TimeConstraint->t は,URLへの接続とそこからの読取り時間を最大 t 秒とする.
- TimeConstraint-><"Connecting"->tc,"Reading"->tr >はURLへの接続とそこからの読取りに別々の時間制限を設ける.
例題
すべて開くすべて閉じる例 (2)
スコープ (2)
指定されたURLについてクエリパラメータとスキームを変える:
同じ名前のパラメータを指定する場合は,規則のリストを使うことができる:
リストを使ったパラメータのグループ化は,連想にはキーの繰り返しが使えないので,連想を使う場合に役に立つ:
"Method"が指定されていない場合は,"GET"が自動的に使われる:
ボディがURL符号化されたHTTPリクエストを送る場合は,値のリストを送ればよい."Method"が指定されていないと,"POST"が自動的に使われる:
より複雑なファイル指定を送る場合は,Associationを使うことができる:
Association中のコンテンツは,文字列,ByteArray,あるいはFileでよい:
オプション (4)
特性と関係 (3)
FileとCloudObjectは完全にサポートされている:
URLDownloadを使ってファイルに出力を保存する:
HTTP上のWolfram言語式を直接ロードするためにGetを使う:
ImportあるいはURLExecuteを使ってリクエストをインポートする:
考えられる問題 (1)
ネットワークリクエストがうまくいかない理由はいくつか考えられる.理由のデバッグのためにメッセージが送られ,Failureオブジェクトが返される:
FailureオブジェクトにはHTTPRequestオブジェクトが含まれている:
おもしろい例題 (1)
APIFunctionをインポート(Import)する:
テキスト
Wolfram Research (2016), URLRead, Wolfram言語関数, https://reference.wolfram.com/language/ref/URLRead.html.
CMS
Wolfram Language. 2016. "URLRead." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/URLRead.html.
APA
Wolfram Language. (2016). URLRead. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/URLRead.html