2011-01-11 8 views
0

SoapHttpClientProtocolから継承したクラスMyClassを使用しています。サービスを表す.wsdlファイルからWebReferenceを作成してプロジェクトで自動生成します。SoapHttpClientProtocolから継承したクライアントクラスからHTTPヘッダーを設定する方法

このサービスの「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のコンストラクタで呼び出されたことを期待していました。

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

+0

ご回答いただきありがとうございます。残念なことに、あなたの言うことが真実であれば(そして私はそれを疑うことはありません))、それはサービスが私のカスタムヘッダーを使用できるはずであり、それは(明らかに)... GetWebRequest()を呼び出した後、既存のヘッダーを(任意の手段で)クリアできる方法と呼ばれる方法がありますか? –

+0

SoapHttpClientProtocolの実装に似たものを追加しましたが、実際にヘッダーを追加するようには見えません。少なくとも、サービスはそれらを認識しません。あなたはこれについて何か進歩しましたか? –

答えて

0

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

0

右、Webメソッドが呼び出されるたびにGetWebRequest仮想を呼び出す必要があります。

関連する問題