| 4D v13.4HTTP Request | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v13.4
 HTTP Request 
         | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| HTTP Request ( httpMethod ; url ; contents ; response {; headerNames ; headerValues}{; *} ) -> 戻り値 | ||||||||
| 引数 | 型 | 説明 | ||||||
| httpMethod | テキスト |   | リクエストで使用するHTTPメソッド | |||||
| url | テキスト |   | リクエストの送信先URL | |||||
| contents | テキスト, BLOB, ピクチャー |   | リクエストボディの内容 | |||||
| response | テキスト, BLOB, ピクチャー |   | レスポンスの内容 | |||||
| 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には異なる型のレスポンスを渡せます:
サーバーから返された結果がresponseの変数型に対応しない場合、変数は空のままでOKシステム変数に0が設定されます。
headerNames と headerValuesにはリクエストヘッダーの名前と値をそれぞれ格納した配列を渡します。
このコマンド実行後、これらの配列にはHTTPサーバーから返されたレスポンスのヘッダー情報で置き換えられます。これにより特にCookieを管理できます。 
* 引数を使用してサーバー接続時にkeep-aliveメカニズムを有効にできます。デフォルトではこの引数が省略されると、keep-aliveは有効になりません。
コマンドからは標準のHTTPステータスコードが返されます (200=OK等)。HTTPステータスコードについてはRFC 2616を参照してください。 
ネットワークに関連する理由 (DNS解決に失敗した、サーバーに接続できないなど...) により、サーバーに接続できない場合、コマンドは0を返し、エラーが生成されます。このエラーは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はリクエストの送信と返される結果を処理するだけです。
	プロダクト: 4D
	テーマ: HTTPクライアント
	番号: 
        1158
        
        
        
	

	初出: 4D v13