我正在调用Java Web服务,它返回一些数据。当我查看Fiddler中返回的结果时,它看起来像这样:
HTTP/1.1 200 OK
Date: Thu, 18 Oct 2012 15:14:03 GMT
Server: Apache
Keep-Alive: timeout=300, max=99
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/xml; charset=UTF-8
Content-Language: en
46f
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cre="http://www.example.org/getOrderList/">
<soapenv:Header/>
<soapenv:Body>
<cre:getOrderListResponse1 status="success">
<GetOrderList company="LO" OrderNumber="0423180" CustomerNumber="2150" Branch="000" customerReference="1001" orderStatus="cancelled" suspendCode=""/>
</cre:getOrderListResponse1>
</soapenv:Body>
</soapenv:Envelope>
0
Fiddler报告称“响应已编码,可能需要在检查前进行解码。”
我假设标题和正文之间的4F6和结尾的0结尾使得.Net无法处理结果。
任何想法如何解决这个问题?
编辑:似乎问题可能是我正在使用HTTP 1.1调用服务,并且该服务正在返回HTTP 1.0。知道如何强制服务使用HTTP 1.0进行调用吗?
答案 0 :(得分:0)
原来你是完全正确的,L.B。这是一个XY问题。
问题最终是响应中的命名空间不正确。
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:cre="http://www.example.org/getOrderList/">
需要
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:cre="http://www.example.org/LathamIntOE/">
在Java服务中更改后,它运行正常。