4D v12.4GET HTTP HEADER |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v12.4
GET HTTP HEADER
|
GET HTTP HEADER ( header|fieldArray {; valueArray} ) | ||||||||
引数 | 型 | 説明 | ||||||
header|fieldArray | テキスト, テキスト配列 |
![]() |
リクエストHTTPヘッダまたはHTTPヘッダフィールド | |||||
valueArray | テキスト配列 |
![]() |
HTTPヘッダフィールドの内容 | |||||
GET HTTP HEADERコマンドは、 現在処理されているリクエストのHTTPヘッダーを含む2つの配列、または文字列のいずれかを返します。
このコマンドはWebプロセスで実行されるすべてのメソッド ( '/4DACTION'...によって呼び出されるメソッド、On Web AuthenticationデータベースメソッドまたはOn Web Connectionデータベースメソッド) 内から呼び出されます。Windows と Mac OS上で、各ヘッダーフィールドはCR+LF (キャリッジリターン+ラインフィード) シーケンスによって区切られています。
fieldArray{1} = "X-METHOD" | valueArray{1} = "GET" * |
fieldArray{2} = "X-URL" | valueArray{2} = "/page.html" * |
fieldArray{3} = "X-VERSION" | valueArray{3} = "HTTP/1.0" * |
fieldArray{4} = "User-Agent" | valueArray{4} = "browser" |
fieldArray{5} = "Cookie" | valueArray{5} = "C=HELLO" |
HTTP標準に準拠するには、フィールド名を常に英語で記述します。
リクエストで使用可能ないくつかのHTTPフィールドを以下のリストに示します。
次のメソッドを使用して、あらゆるHTTPリクエストヘッダフィールドのコンテンツを取得します。
`GetHTTPFieldプロジェクトメソッド
` GetHTTPField (Text) -> Text
` GetHTTPField (HTTP header name) -> HTTPヘッダーコンテンツ
C_TEXT($0;$1)
C_LONGINT($vlItem)
ARRAY TEXT($names;0)
ARRAY TEXT($values;0)
$0:=""
GET HTTP HEADER($names;$values)
$vlItem:=Find in array($names;$1)
If($vlItem>0)
$0:=$values{$vlItem}
End if
` Cookieヘッダーコンテンツ
$cookie:=GetHTTPField("Cookie")
$language:=GetHTTPField("Accept-Language")
Case of
:($language="@fr@") `フランス語 (ISO 639リストを参照)
SEND HTML FILE("index_fr.html")
:($language="@sp@") `スペイン語 (ISO 639リストを参照)
SEND HTML FILE("index_es.html")
Else
SEND HTML FILE("index.html")
End case
Note: Webブラウザ上で複数のランゲージをデフォルトで定義することができます。ランゲージは"Accept-Language" フィールドでリストにされ、 ";" で区切られて示されています。文字列内でのランゲージの位置に応じて、その優先順位が定義されます。そのため、文字列内でのランゲージの位置をテストすることをお勧めします。
$host:=GetHTTPField("Host")
Case of
:($host="www.site1.com")
SEND HTML FILE("home_site1.com")
:($host="www.site2.com")
SEND HTML FILE("home_site2.com")
Else
SEND HTML FILE("home_site.com")
End case
プロダクト: 4D
テーマ: Webサーバ
番号:
697
初出: 4D v6.7