Java API for XML-based RPC (JAX-RPC) クライアント・スタブで REQUEST_TRANSPORT_PROPERTIES プロパティーおよび RESPONSE_TRANSPORT_PROPERTIES プロパティーを設定すると、 Web サービス・クライアントが HTTP トランスポート・ヘッダーを送信または取得できるようになります。
ヘッダー値のフォーマット
name1=value1;name2=value2;name3=value3
HashMap 値
この場合には、 HashMap からの name=value は暗黙のうちに無視されるため、クライアントが、 サーバーまたは Web サービス・エンジンが既に発信要求ヘッダーで設定した名前 値の値を上書きしたり変更したりすることができなくなります。
HashMap ヘッダー値に複数の名前 値が含まれていると、最初に現れる名前 値が使用され、 それ以外のものは暗黙のうちに無視されます。例えば、HashMap ヘッダー値に name1=value1;name2=value2;name1=value3 が含まれている場合、 name1 が 2 回現れるので、最初の値 name1=value1 が使用されます。 もう 1 つの値 name1=value3 は暗黙のうちに無視されます。
HashMap 値
HashMap キーのみが使用され、HashMap 値は無視されます。 値は、HTTP ヘッダーを取得することによってこの HashMap に取り込まれますが、 これは、着信する HTTP 応答からの HashMap キーに相当します。 HashMap が空の場合、 HTTP ヘッダーとそれに関連した値のすべてが着信 HTTP 応答から取得されます。
以下の HTTP ヘッダーは、 HTTP の応答および要求を送信したり取得したりする際に、特別に考慮されるものです。
これらのヘッダーの値は、さまざまな方法で設定できます。 例えば、一部のヘッダー値はデプロイメント記述子やバインディング・ファイルの設定に基づいて送信されます。 このような場合、REQUEST_TRANSPORT_PROPERTIES によって設定された値が、 それ以外の方法で設定された値をオーバーライドします。
ヘッダー | 要求の送信 | 応答の取得 |
Transfer-encoding |
|
特別な処理はありません。 |
Connection |
|
特別な処理はありません。 |
Expect |
|
特別な処理はありません。 |
ホスト | 無視 | 特別な処理はありません。 |
Content-type | 無視 | 特別な処理はありません。 |
SOAPAction | 無視 | 特別な処理はありません。 |
Content-length | 無視 | 特別な処理はありません。 |
Cookie 以下はストリング定数です。 com.ibm.websphere.webservices.Constants.HTTP_HEADER_COOKIE |
この構造が正しい場合は、ヘッダー上で値が送信されます。 ヘッダー値フォーマットと HashMap 値については、この文書内の情報を参照してください。 | 特別な処理はありません。 |
Cookie2 以下はストリング定数です。 com.ibm.websphere.webservices.Constants.HTTP_HEADER_COOKIE2 |
「Cookie」項目の情報を参照してください。 | 特別な処理はありません。 |
Authorization | 無視 | 特別な処理はありません。 |
Proxy-authorization | 無視 | 特別な処理はありません。 |
Set-cookie 以下はストリング定数です。 com.ibm.websphere.webservices.Constants.HTTP_HEADER_SET_COOKIE |
特別な処理はありません。 | プロパティー MAINTAIN_SESSION を true に設定すると、 値全体は SessionContext.CONTEXT_PROPERTY に保管され、 Cookie ヘッダーのそれ以降の要求上で送信されます。詳しくは、 この表の Cookie 項目を参照してください。 |
Set-cookie2 以下はストリング定数です。 com.ibm.websphere.webservices.Constants.HTTP_HEADER_SET_COOKIE2 |
特別な処理はありません。 | プロパティー MAINTAIN_SESSION を true に設定すると、 値全体は SessionContext.CONTEXT_PROPERTY に保管され、 Cookie ヘッダーのそれ以降の要求上で送信されます。詳しくは、 この表の Cookie 項目を参照してください。 |
HashMap sendTransportHeaders=new HashMap(); sendTransportHeaders.put("Cookie","ClientAuthenticationToken=FFEEBCC"); sendTransportHeaders.put("MyRequestHeader","MyRequestHeaderValue"); ((Stub) portType)._setProperty(Constants.REQUEST_TRANSPORT_PROPERTIES, sendTransportHeaders); HashMap receiveTransportHeaders=new HashMap(); receiveTransportHeaders.put("Set-Cookie", null); receiveTransportHeaders.put("MyResponseHeader", null); ((Stub) portType)._setProperty(Constants.RESPONSE_TRANSPORT_PROPERTIES, receiveTransportHeaders); resultString=portType.echoString("Foo");