WSE 3.0设置的内容类型

问题描述:

我有一个简单的问题,对你来说,我似乎无法摆脱困境。WSE 3.0设置的内容类型

的情况如下:

  • 我们创建并发送请求到Web服务,使用WSE 3
  • Web服务是用Java编写。

大部分的事情都很好,但我似乎无法对WebResuest或WebResponse的ContentType产生影响,这会导致一些问题。

总是收到的errormessage的是以下内容:

客户端发现的响应的内容类型 '应用/ XOP + xml的;类型= “文本/ XML;字符集= UTF-8”',但预期“文本/ XML”。 请求失败,出现错误消息:....

在错误消息的详细信息中,它对来自服务器的呼叫作出了响应,并且它正常通过。 显然它不是很好,因为它正在通过例外:)。

那么,我该如何设置响应的预期内容类型?

如果我没有错,WSE 3.0中的请求和响应必须具有相同的ContentType。所以我想我会尝试设置request.Headers [HttpRequestHeader.ContentType]到预期的,但没有运气。 (还可以,我可以设置HttpWebRequest的的的contentType在不少地方,但他们都不做的伎俩)

+0

您可能已经知道这一点,但只是要确定:您知道WSE已过时,对吗?它不支持VS2008或以上? – 2009-06-02 13:38:32

这已经幸运的是解决了,所以这里的供将来参考的解决方案:

我们的客户继承来自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; 
    }