HTTPRequest
HTTPRequest[url]
指定されたURLについてのHTTPリクエストを表す.
HTTPRequest[assoc]
連想 assoc 中の成分から構築されたHTTPリクエストを表す.
HTTPRequest[url,assoc]
assoc で与えられるヘッダ等の追加的要素を含む,指定されたURLについてのHTTPリクエストを表す.
詳細とオプション
- HTTPRequestはHTTPリクエストの記号表現を与えるが,リクエストを実行することはしない.
- HTTPRequest[url]の url は,文字列,URLオブジェクトあるいはクラウドオブジェクトでよい.
- URLは連想中に次の成分を与えることで指定することもできる.
-
"Scheme" URLスキーム "User" ユーザ情報 "Domain" ドメイン名あるいはホスト "Port" ポート番号(整数で) "Path" パスのリストあるいは文字列 "Query" クエリ文字列あるいはパラメータと値のペアのリスト - 次の追加的な要素も連想中に与えることができる.
-
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"は,クッキーを表す連想の明示的なリストを与えることもある.
- "Headers"の設定は,規則のリストあるいは連想でよい.
- デフォルトの"UserAgent"は,通常は"Wolfram HTTPClient xxxx"である.xxxxはバージョン番号である.
- HTTPRequestは次のオプションをサポートする.
-
CharacterEncoding Automatic 送信する文字列の文字コード CookieFunction Automatic 受信した各クッキーに適用する関数 FollowRedirects True HTTPリダイレクトを追跡するかどうか Interactive True インタラクティブな認証ダイアログを認めるかどうか TimeConstraint Infinity 応答の待ち時間 VerifySecurityCertificates True SSLセキュリティ証明を確かめるかどうか - CharacterEncoding->"enc"の設定は,サーバに送信する前にリクエスト中のすべての文字列を文字コード enc を使って符号化するように指定する.
- CharacterEncoding->Noneの設定は,サーバに送信する前に文字列に変更を加えないように指定する.
- CharacterEncoding->Automaticとすると,"ContentType"要素が指定されている場合はここから符号化が取られる.それ以外の場合は"UTF8"が使われる.
- TimeConstraint->t では,HTTPリクエストで指定されたURLとの接続とそこからの読出しに最大 t 秒が使われる.
- TimeConstraint-><"Connecting"->tc,"Reading"->tr >はURLへの接続とそこからの読出しに別々のタイムアウトを設定する.
- HTTPRequest[…]["prop"]はHTTPリクエストの特性 prop の値を取り出す.
- 使用可能な特性には,全成分と追加要素の他に次がある.
-
"Body" 文字列としてのリクエストのボディ "BodyByteArray" ByteArrayオブジェクトとしてのリクエストの生のボディ "BodyBytes" バイト値のリストとしてのリクエストの生のボディ "FormRules" リクエスト中の全フォーム要素についての規則 "PathString" 文字列としての完全パス "QueryString" 完全なクエリ文字列 "AbsolutePath" スキームとドメインを含む文字列としての完全パス "AbsoluteDomain" スキームを含む文字列としての完全ドメイン "Properties" 使用可能な全特性のリスト "PropertyAssociation" 全特性の値を与える連想
例題
すべて開くすべて閉じる例 (1)
スコープ (2)
指定されたURLについてクエリパラメータとスキームを変える:
同じ名前のパラメータが指定したければ,規則のリストを使うことができる:
パラメータをリストにグループ化することは,連想を扱う場合に繰り返しのキーが使えないので便利である:
Methodが指定されていなければ,"GET"が自動的に使われる:
ボディがURL符号化されているHTTPリクエストを送るときは,値のリストを送るだけでよい.Methodが指定されていなければ,"POST"が自動的に使われる:
より複雑なファイル指定を送信する場合は,Associationを使うことができる:
Association内のコンテンツは,文字列,ByteArray,あるいはFileでよい:
オプション (4)
特性と関係 (2)
考えられる問題 (1)
ネットワークのリクエストが上手くいかない理由はいくつかある.考えられる原因のデバックを手伝うためにメッセージが送られ,Failureオブジェクトが返される:
FailureオブジェクトはHTTPRequestオブジェクトを含んでいる:
おもしろい例題 (1)
APIFunctionをインポート(Import)する:
テキスト
Wolfram Research (2016), HTTPRequest, Wolfram言語関数, https://reference.wolfram.com/language/ref/HTTPRequest.html.
CMS
Wolfram Language. 2016. "HTTPRequest." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/HTTPRequest.html.
APA
Wolfram Language. (2016). HTTPRequest. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/HTTPRequest.html