HTTP BC は、WSDL 1.1 仕様で定義されている HTTP 1.1 POST バインディングを実装します。これにより、アプリケーションは Web ブラウザに似た HTTP GET 対話を使用して、JBI 環境からサービスを消費または提供することができます。
HTTP バインディングコンポーネントを HTTP POST 対話で機能するように設定するには、バインディングコンポーネントがプロキシとして機能しているサービスの WSDL ファイルで、WSDL 1.1 仕様で定義されている次の HTTP バインディング言語要素を使用する必要があります。
WSDL バインディングが HTTP POST を使用することを示す <http:binding> 要素。
ポートのアドレスを表す <http:address> 要素。
各オペレーションの相対アドレスを表す <http:operation> 要素。ポートで定義されている <http:address> を基準とします。
要求のすべてのメッセージパートをどのようにエンコードして HTTP 要求 URI に含めるかを示す <http:urlEncoded> および <http:urlReplacement> 要素。
HTTP バインディングコンポーネントをプロバイダプロキシまたはコンシューマプロキシとして設定する方法の例は、Using the HTTP Binding Component with the HTTP GET method および Using the HTTP Binding Component with the HTTP POST Method で参照できます。
現在、HTTP バインディングコンポーネントでは、HTTP GET でのみ <http:urlReplacement> と <http:urlEncoded> の使用がサポートされています。
これらの要素のバインディングの詳細については、「バインディングの詳細」を参照してください。
GET 要求と POST 要求では要求の構造が異なるため、HTTP バインディングコンポーネントでの WSDL HTTP バインディングの使用法には GET および POST 形式の対話にわたる一貫性がありません。
相違点は次のとおりです。
GET 要求は、URL (および HTTP ヘッダー) に含まれているデータのほかには追加のデータを含んでいません。
POST 要求は、要求エンティティー本体で追加のデータを送信することができます。たとえば、Web ブラウザを使用して POST によってフォームを送信する (またはフォームを介してファイルをアップロードする) 場合、フォームデータまたはファイルの内容が要求の本体として送信されます。データは要求 URL の一部にはなりません。
これらの相違点のため、現在の HTTP バインディングコンポーネントの実装では、http:urlEncoded と http:urlReplacement は HTTP GET と組み合わせて使用される場合のみ意味を持つと見なされます。これらのバインディング要素は、GET 要求だけに適用される URL エンコーディングスタイルを示すからです。
HTTP POST の場合、現在の実装では http:urlEncoded バインディング要素と http:urlReplacement バインディング要素はどちらも無視されます。