Мне нужно прикрепить пользовательский заголовок к моему клиенту веб-службы.Для этого я создал частичный класс для класса SoapHttpClientProtocol, который был сгенерирован при добавлении веб-ссылки.Тем не менее, я получаю ошибку во время выполнения, когда мои пользовательские заголовки подключены.Все работает нормально, если пользовательские заголовки не присоединены (когда я комментирую код, который присоединяет заголовки).Однако, если пользовательские заголовки добавляются, то я получаю следующую ошибку во время выполнения: Клиент обнаружил тип содержимого ответа 'text / html;charset = utf-8 ', но ожидаемый' text / xml '.Есть идеи?
Так вот пример кода:
public partial class SMARTSWS : System.Web.Services.Protocols.SoapHttpClientProtocol
{
private NameValueCollection _customHeaders = new NameValueCollection();
protected override System.Net.WebRequest GetWebRequest(System.Uri Uri)
{
// Add authentication cookie to the
// this object CookieContainer
SmartsIVRSecurityManager.SetAuthToken(this);
// Set Custom Headers
SetCustomHeaders();
HttpWebRequest req = (HttpWebRequest)base.GetWebRequest(Uri);
for (int i = 0; i <= _customHeaders.Count - 1; i++)
{
req.Headers.Add(_customHeaders.Keys[i], _customHeaders.GetValues(i).GetValue(0).ToString());
}
return req;
}
/// <summary>
/// Set Custom Headers
/// </summary>
/// <param name="smToken"></param>
public void SetCustomHeaders()
{
_customHeaders.Add("Version", "1.0");
_customHeaders.Add("OnBehalfOf", String.Empty);
_customHeaders.Add("Role", "1");
_customHeaders.Add("EndPoint", "001");
_customHeaders.Add("ServiceId", "001");
_customHeaders.Add("DateTime", String.Empty);
_customHeaders.Add("ClientApplication", "SmartsIVRService");
_customHeaders.Add("TraceWebMethod", "false");
_customHeaders.Add("ClientTouchPoint", "SmartsIVRService");
_customHeaders.Add("ChannelInfo", "ChannelInfo");
}
}