Как установить заголовки HTTP из класса клиента, унаследованного от SoapHttpClientProtocol

Я использую класс MyClass, унаследованный от SoapHttpClientProtocol (автоматически генерируется в моем проекте путем создания WebReference из файла.wsdl, представляющего сервис).

Прежде чем вызвать "WebMethod" этой службы, мне нужно настроить заголовок http моего запроса. Я попытался перегрузить метод GetWebRequest() SoapHttpClientProtocol таким образом:

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, по-видимому, это не так.

Может ли кто-нибудь помочь мне?

2 ответа

GetWebRequest вызывается, когда прокси-сервер должен получить веб-запрос.

Правильно, виртуальный GetWebRequest должен вызываться каждый раз, когда вызывается веб-метод.

Другие вопросы по тегам