.NET客户端从Axis Web服务获得“格式不正确”的XML响应

时间:2009-06-09 13:59:52

标签: xml soap .net-2.0 axis

我有一个简单的.NET应用程序,可以对第三方Axis Web服务进行SOAP调用。当我跟踪HTTP流量时,我看到Request看起来很好,但是我得到了一个例外:“响应不是格式良好的XML。”返回对象为null,因为似乎无法反序列化XML。

关于wsdl中各种命名空间声明的一个问题。其中一些声明指向不再存在的URL /域。这可能导致任何问题吗?

来自wsdl文件:

<wsdl:definitions targetNamespace="http://domaindoesntexist.com/"  
xmlns:apachesoap="http://xml.apache.org/xml-soap"  
xmlns:impl="http://domaindoesntexist.com/"  
xmlns:intf="http://domaindoesntexist.com/"  
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"  
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"  
xmlns:xsd="http://www.w3.org/2001/XMLSchema">

删除了有罪数据的示例HTTP响应:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/xml;charset=utf-8
Transfer-Encoding: chunked
Date: Fri, 05 Jun 2009 13:54:59 GMT

7cb
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<someMethod xmlns="http://test.com/services/myservice/">
</someMethod>
</soapenv:Body>
</soapenv:Envelope>
0

3 个答案:

答案 0 :(得分:1)

根据我的经验,命名空间URL不一定是实际的现有URI。一致性是所需要的,因此可以构建内部XML模式以进行验证。意图是(我相信)在该位置托管命名空间定义,以便开发人员可以去那里检查它,但后来人们变得懒惰。

事实上,我可能在后一种情况下是错误的。

答案 1 :(得分:0)

  

其中一些声明指出   不再存在的网址/域名。   这可能导致任何问题吗?

不确定。您是否尝试更新项目中的Web服务?

答案 2 :(得分:0)

我遇到了类似的问题,在查看Wireshark跟踪后发现有一个代理服务器在XML有效负载中插入一些头文件

webservice正在尝试加载xml

“Content-Type:text / xml; charset = utf-8 变化:接受编码,用户代理 连接:关闭 转移编码:分块 2rZ3fnB2rMzDjipXgQz8ObOcEczeOIO74sa17YK5hrPkt62qce12BItOmuvPrC / WD8N3xZzBeBceBbiAA0IlsR2aXxd479Es7wO9va2cGpF / cc284gI.K5FXbOR5PUPx00EqNRjCdbdU4fv / JXN2alGDzGVlgCnRK5 / 6DJlAkcED2011-06-08T15:35:21.505Z“

显然不会加载。

我案例中的完整tcp流

POST / ls / ws / auth HTTP / 1.1

User-Agent:Mozilla / 4.0(兼容; MSIE 6.0; MS Web服务客户端协议2.0.50727.3615)

Content-Type:text / xml;字符集= UTF-8

SOAPAction:“”

主持人:??????

内容长度:487

期待:100-continue

连接:Keep-Alive

2PUldqLs2KqUkJryFiZPQJI.D6RCixeMu443SLd7dCF2qrzws0E2JYatTqm8wD2CuFrSVHEjvJHIXfiLy6w9yBagentfp093.0.1.9019HTTP / 1.0 200 OK

日期:2011年6月8日星期三15:35:21 GMT

服务器:Apache-Coyote / 1.1

Content-Type:text / xml; charset = utf-8

Vary:Accept-Encoding,User-Agent

X-Cache:来自dgtproxy1.skybroadband.com.ph的MISS

连接:关闭

0.1

Content-Type:text / xml; charset = utf-8

Vary:Accept-Encoding,User-Agent

连接:关闭

Transfer-Encoding:chunked

2rZ3fnB2rMzDjipXgQz8ObOcEczeOIO74sa17YK5hrPkt62qce12BItOmuvPrC / WD8N3xZzBeBceBbiAA0IlsR2aXxd479Es7wO9va2cGpF / cc284gI.K5FXbOR5PUPx00EqNRjCdbdU4fv / JXN2alGDzGVlgCnRK5 / 6DJlAkcED2011-06-08T15:35:21.505Z