0

我正在尝试在 Visual Studio 2008 中使用第三方 WebService,并从服务器获得独特的响应。这个返回有两个内容类型标签。

HTTP/1.0 200 OK  
Server: SMBDK_1/2.3.0  
Date: Thu, 09 Aug 2012 18:59:14 GMT  
Connection: close  
Content-Length: 670  
Content-Type: text/html; charset=ISO-8859-1  
Content-Type: text/xml  
Expires: Thu, 09 Aug 2012 18:59:14 GMT  
Last-Modified: Thu, 09 Aug 2012 18:59:14 GMT  

这是常见且有效的 SOAP 响应还是奇怪?

4

1 回答 1

2

我无法评论它的普遍性,但它是无效的(尽管它在 HTTP 级别而不是 SOAP 级别无效)。

因为我们有两种内容类型:

来自http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2

当且仅当该头字段的整个字段值被定义为逗号分隔列表[即,#(values)] 时,具有相同字段名称的多个消息头字段可能出现在消息中。

因此,让我们看一下 content-type 标头:

来自http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17

  Content-Type   = "Content-Type" ":" media-type

然后我们展开media-type

   media-type     = type "/" subtype *( ";" parameter )
   type           = token
   subtype        = token

这不是逗号分隔的列表。

于 2012-08-10T08:47:19.017 回答