0

我正在使用由第 3 方开发的 SOAP 接口,但返回的 HTTP 标头无效,如下所示。

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 

请注意,有 2 个内容类型标签。我在这个 VB 项目中使用 VS2008。我有此连接的服务参考,可以发送请求并接收响应。我使用 MSDN 示例创建了一个 CustomTextMessageEncoder 来读取text/html; charset=ISO-8859-1. 这适用于单变量返回,但数组永远不会正确读取。它们总是空的。我正在使用 Web 调试代理,并且可以看到 SOAP 响应中存在数组信息,但它实际上从未被拉过。我认为这是由于错误的标题(?)。我尝试将消息解码为text/xml; charset=ISO-8859-1并得到相同的结果...返回空数组。

有人对如何处理这种情况有任何建议吗?我需要手动反序列化此消息还是有更好的方法?

4

1 回答 1

0

最后,这些错误的标头阻止了 Visual Studio 正确读取数组。
我最终不得不在内存中的 XMl 文档中捕获整个响应,然后打开它并使用 xmlNodeList 手动从数组中读取数据。

于 2013-07-03T13:10:47.120 回答