我正在使用由第三方开发的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
并得到相同的结果......空数组返回。
有没有人对如何处理这种情况有任何建议?我是否需要手动反序列化此消息,还是有更好的方法?
答案 0 :(得分:0)
最后,这些错误的标题阻止了Visual Studio正确读取数组。
我不得不在内存中的XMl文档中捕获整个响应,然后打开它并使用xmlNodeList手动读取数组中的数据。