2009-08-21 21 views
12

従来のWebサービスプロキシを使用してJava Webサービスと通信する古いアプリケーションがあります。 Webサービスのホスティング者は、サービスにアクセスするためにリクエストごとにカスタムHTTPヘッダーを送信する必要があると判断しました。そうしないと、リクエストは完全に破棄されます(これはルータのようなものです)。リクエストにカスタムHTTPヘッダーを挿入する必要がある理由に関係なくWebサービスプロキシへのカスタムHTTPヘッダーの追加

実際のHttpクライアントと対話してカスタムヘッダーを追加する方法はありますか?

+0

ヘッダーを開き、下に投票したソリューションが動作することを確認しました。 –

答えて

17

部分クラスのプロキシクラスのメソッドを別のファイルでオーバーライドすると、これを行うことができます。基底クラスのメソッドを呼び出した後、あなたは変更することができるはず返さHttpWebRequestのあなたが好きしかし、その後、メソッドからそれを返す:私たちのITは受け入れを探していたのApacheのmod_securityを実装したときに、私はこの問題に出くわした

public partial class MyServiceProxy { 
    protected override WebRequest GetWebRequest(Uri uri) { 
     HttpWebRequest request = (HttpWebRequest) base.GetWebRequest(uri); 
     // do what you will with request. 
     return request; 
    } 
} 
+1

うん、それはトリックを行います。私は基本的にコードを使ってプロキシを生成しています。クラスを生成し、GetWebRequestでヘッダープロパティを追加してヘッダーを追加し、ヘッダーを追加することができました。 醜いですが、それは素晴らしい作品です! –

+0

解決に感謝します。このプロセスをWebサービスクライアントプロジェクトでどのように使用できますか? – Jack

+0

@Jack:これはWebサービスクライアントプロジェクトです。また、選択肢がある場合は、WCFを使用する方がよいでしょう。 –

関連する問題