Java Web服务响应是编码的,因此.Net无法理解它

时间:2012-10-18 15:26:52

标签: .net web-services encoding

我正在调用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进行调用吗?

1 个答案:

答案 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服务中更改后,它运行正常。