0

Visual Studio 2008 でサード パーティの WebService を使用しようとしていますが、サーバーから一意の応答が返されます。この戻り値には、2 つの content-type タグがあります。

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

それがどれほど一般的であるかについてコメントすることはできませんが、それは有効ではありません(ただし、SOAPレベルではなくHTTPレベルで有効性に失敗します)。

2つのコンテンツタイプがあるため:

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 に答える