1

SoapHttpClientProtocol から継承されたクラス MyClass を使用しています (サービスを表す .wsdl ファイルから WebReference を作成することにより、プロジェクトで自動生成されます)。

このサービスの「WebMethod」を呼び出す前に、リクエストの http ヘッダーをカスタマイズする必要があります。そのように SoapHttpClientProtocol の GetWebRequest() メソッドをオーバーロードしてみました:

public partial class MyClass: System.Web.Services.Protocols.SoapHttpClientProtocol{

 protected override WebRequest GetWebRequest(Uri uri) {

            HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(uri);

            request.Headers.Add("MyCustomHeader", "MyCustomHeaderValue");

            return request;

        }
    }

GetWebRequest が MyClass のコンストラクターで呼び出されることを望んでいましたが、明らかにそうではありません。

誰かが私を助けることができますか?

4

2 に答える 2

0

GetWebRequestは、プロキシがWebリクエストを取得する必要があるときに呼び出されます。

于 2011-01-11T19:29:01.907 に答える
0

そうです、Web メソッドが呼び出されるたびに GetWebRequest virtual を呼び出す必要があります。

于 2011-01-11T19:29:30.590 に答える