对于你来说,我有一个简单的问题,我似乎无法理解。
情况如下:
大多数情况都很好,但我似乎无法对WebResuest或WebResponse的ContentType产生影响,这会导致一些问题。
我不断得到的错误消息如下:
客户端发现响应内容类型为'application / xop + xml; type =“text / xml; charset = utf-8”'但预期为'text / xml'。 请求失败,并显示错误消息:....
在错误消息的详细信息中,它对来自服务器的呼叫作出响应并且正确地通过。 显然它并不好,因为它正在通过一个例外:)。
那么,我如何设置响应的预期内容类型?
如果我是正确的,WSE 3.0中的请求和响应必须具有相同的ContentType。所以我想我会尝试将request.Headers [HttpRequestHeader.ContentType]设置为预期的一个,但没有运气。 (另外,我可以在很多地方设置HttpWebRequest的内容类型,但似乎没有一个可以做到这一点)
答案 0 :(得分:1)
这已经幸运地解决了,所以这里是未来参考的解决方案:
我们的客户端继承自WebServicesClientProtocol类,其中有一个名为GetWebResponse(..)的方法。 简单地重写该方法并更改Response的ContentType似乎对我们有用。
protected override WebResponse GetWebResponse(System.Net.WebRequest request)
{
WebResponse response = base.GetWebResponse(request);
response.Headers[HttpResponseHeader.ContentType] = "text/xml";
return response;
}