0
私はサードパーティのWebサービスへのプロキシとして動作しようとしており、REST要求を変換する必要があります。私が持っている1つの問題は、私が何をしてもContent-Typeヘッダーがオーバーライドされるようです。コードは、(文脈が@ContextのMessageContext 変数である)実際には非常に簡単です:CXF WebClientがHTTPコンテンツタイプをオーバーライドします
WebClient client = WebClient.create(url)
.header("real-header-removed", "auth-string-removed")
//.header("Content-Type", context.getHttpHeaders().getMediaType().toString());
.type(context.getHttpHeaders().getMediaType());
Response resp = client.get();
return (InputStream)resp.getEntity();
.headerも.TYPEどちらも働きました。リクエストのtcpmonの出力である:(?というか、なぜそれ が起こっている)私はclient.invokeを使用するために必要な、私はコンテンツタイプの上書きを避けるにはどうすればよい
Content-Type: */*
real-header-removed: auth-string-removed
Accept: application/xml
User-Agent: Apache CXF 2.3.5
Cache-Control: no-cache
Pragma: no-cache
これはわかりました。私はclient.invoke( "GET"、 "");を使用する必要がありました。なぜ私はこれを行う必要があるのだろうか、私は実際には、Content-TypeをGETに設定しようとしていないので、*/*のオーバーライドは望んでいません。私が使用しているサードパーティサービスは、Content-Typeヘッダーが設定されている場合はそれを使ってsigを計算します。 –