4D v16.3

HTTP Get

ホーム

 
4D v16.3
HTTP Get

HTTP Get 


 

HTTP Get ( url ; response {; headerNames ; headerValues}{; *} ) -> 戻り値 
引数   説明
url  テキスト in リクエスト送信先URL
response  テキスト, BLOB, ピクチャー, Object in リクエストの結果
headerNames  テキスト配列 in リクエストのヘッダー名
in 返されたヘッダー名
headerValues  テキスト配列 in リクエストのヘッダー値
in 返されたヘッダー値
演算子 in 指定時: 接続を保持する (keep-alive)
省略時: 自動で接続を閉じる
戻り値  倍長整数 in HTTPステータスコード

説明   

HTTP Getコマンドは指定したURLにHTTP GETリクエストを送信し、HTTPサーバーからのレスポンスを処理します。

url 引数にはリクエストの送信先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リクエストを行う場合でも、証明書の発行局は検証されません。

コマンド実行後、response 引数はサーバーから返される結果を受け取ります。この結果はレスポンスからヘッダーを取り除いたボディー部です。
responseには異なる型の変数を渡すことができます:

  • テキスト: 期待される結果がテキストの場合(以下参照)。
  • BLOB: 期待される結果がバイナリの場合。
  • ピクチャー: 期待される結果がピクチャーの場合。
  • オブジェクト:期待される結果が C_OBJECT オブジェクトの場合。
注: response 引数にテキスト変数が渡された場合、4Dはサーバーから返されたデータを解読しようとします。4Dはまずcontent-type ヘッダーから文字セットを取得しようとし、次にBOMの中身を使用し、最後はhttp-equiv charset (html コンテンツ内) あるいは encoding (xml用) 属性を探します。それでも文字セットが見つからない場合、4DはレスポンスをANSIで解読しようとします。変換が失敗した場合、返されるテキストは空になります。サーバーが文字セット情報あるいはBOMを返すかどうかが分からない一方エンコーディング情報を知っている場合には、BLOBにresponse変数を渡してConvert to textを呼び出す方が正確です。

BLOBを渡した場合、テキストやピクチャー、その他 (.wav, .zip, etc.) どのようなタイプのコンテンツでも受け取ることができます。受け取った内容を復元するのは開発者の仕事です (ヘッダーはBLOBに含まれません)。C_OBJECT 型のオブジェクトを渡したとき、リクエストが結果を "application/json" (または "何か/json") コンテン型とともに返してきた場合、4Dはオブジェクトを生成するためにJSONコンテンツを解析しようとします。

headerNamesheaderValuesにはリクエストヘッダーの名前と値をそれぞれ格納した配列を渡します。
このコマンド実行後、これらの配列にはHTTPサーバーから返されたレスポンスのヘッダー情報で置き換えられます。これにより特にCookieを管理できます。

* 引数を使用してサーバー接続時にkeep-aliveメカニズムを有効にできます。デフォルトではこの引数が省略されると、keep-aliveは有効になりません。

コマンドからは標準のHTTPステータスコードが返されます (200=OK等)。HTTPステータスコードについてはRFC 2616を参照してください。
ネッ トワークに関連する理由 (DNS解決に失敗した、サーバーに接続できないなど...) により、サーバーに接続できない場合、コマンドは0を返し、エラーが生成されます。このエラーはON ERR CALLコマンドを使用してインストールされたエラー処理メソッドで処理できます。

4D Webサイトから4Dロゴを取得する:

 C_TEXT(URLPic_t)
 URLPic_t:="http://www.4d.com/sites/all/themes/dimention/images/home/logo4D.jpg"
 ARRAY TEXT(HeaderNames_at;0)
 ARRAY TEXT(HeaderValues_at;0)
 C_PICTURE(Pic_i)
 $httpResponse:=HTTP Get(URLPic_t;Pic_i;HeaderNames_at;HeaderValues_at)

RFCを取得する:

 C_TEXT(URLText_t)
 C_TEXT(Text_t)
 URLText_t:="http://tools.ietf.org/rfc/rfc1.txt"
 ARRAY TEXT(HeaderNames_at;0)
 ARRAY TEXT(HeaderValues_at;0)
 $httpResponse:=HTTP Get(URLText_t;Text_t;HeaderNames_at;HeaderValues_at)

動画を取得する:

 C_BLOB(vBlob)
 $httpResponse:=HTTP Get("http://www.example.com/video.flv";vBlob)
 BLOB TO DOCUMENT(vBlob;"video.flv")



参照 

HTTP Request

 
プロパティ 

プロダクト: 4D
テーマ: HTTPクライアント
番号: 1157

Errorシステム変数が更新されることがあります。This command can be run in preemptive processes

 
履歴 

初出: 4D v13
変更: 4D v14

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v16)
ランゲージリファレンス ( 4D v16.1)
ランゲージリファレンス ( 4D v16.2)
ランゲージリファレンス ( 4D v16.3)