2011-07-28 4 views
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 

+0

これはわかりました。私はclient.invoke( "GET"、 "");を使用する必要がありました。なぜ私はこれを行う必要があるのだろうか、私は実際には、Content-TypeをGETに設定しようとしていないので、*/*のオーバーライドは望んでいません。私が使用しているサードパーティサービスは、Content-Typeヘッダーが設定されている場合はそれを使ってsigを計算します。 –

答えて

0

は(「GET」 、 "");

関連する問題