Как установить заголовки 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 должен вызываться каждый раз, когда вызывается веб-метод.