4D v14.3HTTP Request |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
HTTP Request
|
HTTP Request ( httpMethod ; url ; contents ; response {; headerNames ; headerValues}{; *} ) -> 戻り値 | ||||||||
引数 | 型 | 説明 | ||||||
httpMethod | テキスト |
![]() |
リクエストで使用するHTTPメソッド | |||||
url | テキスト |
![]() |
リクエストの送信先URL | |||||
contents | テキスト, BLOB, ピクチャー, Object |
![]() |
リクエストボディの内容 | |||||
response | テキスト, BLOB, ピクチャー, Object |
![]() |
レスポンスの内容 | |||||
headerNames | テキスト配列 |
![]() |
リクエストのヘッダー名 | |||||
![]() |
返されたヘッダー名 | |||||||
headerValues | テキスト配列 |
![]() |
リクエストのヘッダー値 | |||||
![]() |
返されたヘッダー値 | |||||||
* | 演算子 |
![]() |
指定時: 接続を保持する (keep-alive) 省略時: 自動で接続を閉じる |
|||||
戻り値 | 倍長整数 |
![]() |
HTTPステータスコード | |||||
HTTP Requestコマンドは指定したURLに任意のメソッドでHTTPリクエストを送信し、HTTPサーバーのレスポンスを処理することを可能にします。
httpMethod 引数にはHTTPリクエストのメソッドを渡します。HTTP Clientテーマの以下の定数を使用できます:
定数 | 型 | 値 | コメント |
HTTP DELETE method | 文字列 | DELETE | RFC 2616参照 |
HTTP GET method | 文字列 | GET | RFC 2616参照。HTTP Getを使用するのと同等。 |
HTTP HEAD method | 文字列 | HEAD | RFC 2616参照 |
HTTP OPTIONS method | 文字列 | OPTIONS | |
HTTP POST method | 文字列 | POST | RFC 2616参照 |
HTTP PUT method | 文字列 | PUT | RFC 2616参照 |
HTTP TRACE method | 文字列 | TRACE | RFC 2616参照 |
リクエストの送信先を url 引数に渡します。使用されるシンタックスは以下の通りです:
http://[{user}:[{password}]@]host[:{port}][/{path}][?{queryString}]
例えば以下の文字列を渡すことができます:
http://www.myserver.com
http://www.myserver.com/path
http://www.myserver.com/path?name=jones
https://www.myserver.com/login (*)
http://123.45.67.89:8083
http://john:smith@123.45.67.89:8083
(*) HTTPSリクエストを行う場合でも、証明書の発行局は検証されません。
contents 引数にはリクエストのボディを渡します。この引数に渡されるデータはリクエストのHTTPメソッドにより異なります。
テキストやBLOB、ピクチャー、オブジェクトデータを送信できます。content-type が指定されない場合、以下のタイプが使用されます:
コマンド実行後、response 引数はサーバーから返された結果を受け取ります。この結果はレスポンスからヘッダーを取り除いたボディー部になります。
responseには異なる型のレスポンスを渡せます:
C_OBJECT 型の変数を <span class="rte4d_prm">response</span> 引数に渡したとき、リクエストが "application/json" (または "<em>something</em>/json") コンテンツ型と結果を返してきた場合、4D はオブジェクトを生成するためにJSON コンテンツを解析しようとします。
サーバーから返された結果がresponseの変数型に対応しない場合、変数は空のままでOKシステム変数に0が設定されます。
headerNames と headerValuesにはリクエストヘッダーの名前と値をそれぞれ格納した配列を渡します。
このコマンド実行後、これらの配列にはHTTPサーバーから返されたレスポンスのヘッダー情報で置き換えられます。これにより特にCookieを管理できます。
* 引数を使用してサーバー接続時にkeep-aliveメカニズムを有効にできます。デフォルトではこの引数が省略されると、keep-aliveは有効になりません。
コマンドからは標準のHTTPステータスコードが返されます (200=OK等)。HTTPステータスコードについてはRFC 2616を参照してください。
ネットワークに関連する理由 (DNS解決に失敗した、サーバーに接続できないなど...) により、サーバーに接続できない場合、コマンドは0を返し、エラーが生成されます。このエラーはON ERR CALLコマンドを使用してインストールされたエラー処理メソッドで処理できます。コマンドがサーバー証明書を使用していてその証明書が有効でない(失効または無効の)とき、コマンドは 0 を返しエラー 901 "Server certificate invalid" が返されます。これらのエラーはON ERR CALLコマンドを使用してインストールされたエラー処理メソッドで処理できます。
リモートデータベースからレコード削除を要求する:
$body_t:="{record_id:25}"
$httpStatus_l:=HTTP Request(HTTP DELETE method;"database.example.com";$body_t)
注: サーバー側では受け付けたリクエストに応じて適切な処理を実装しなければなりません。HTTP Requestはリクエストの送信と返される結果を処理するだけです。
リモートデータベースにレコード追加を要求する:
$body_t:="{fName:'john',fName:'Doe'}"
$httpStatus_l:=HTTP Request(HTTP PUT method;"database.example.com";$body_t)
注: サーバー側では受け付けたリクエストに応じて適切な処理を実装しなければなりません。HTTP Requestはリクエストの送信と返される結果を処理するだけです。
リモートデータベースにJSON形式のレコードを追加するリクエスト:
C_OBJECT($content)
OB SET($content;"lastname";"Doe";"firstname";"John")
$result:=HTTP Request(HTTP PUT method;"database.example.com";$content;$response)
プロダクト: 4D
テーマ: HTTPクライアント
番号:
1158
初出: 4D v13
変更: 4D v14
ランゲージリファレンス ( 4D v14 R2)
ランゲージリファレンス ( 4D v14 R3)
ランゲージリファレンス ( 4D v14.3)
ランゲージリファレンス ( 4D v14 R4)
Inherited from : HTTP Request ( 4D v13.5)