我们有一个.NET客户端,其中包含对基于SOAP的Web服务的Web引用。我们调用的方法有一个签名string request()
,但是当我们调用它时,我们只会收到一个空值。目标服务正在接收请求并使用除null之外的其他内容进行响应,但我们的客户端只返回空值
查看WSDL,响应应如下所示:
<message name="requestResponse">
<part name="request" type="xsd:any"/>
</message>
实际响应如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="urn:pt_service" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
<env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc">
<ns1:requestResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
<rpc:result>textnoenc</rpc:result>
<response>
<result>12</result>
<message><![CDATA[Bad]]></message>
<error>
<code>0</code>
<desc><![CDATA[Bad]]></desc>
</error>
</response>
</ns1:requestResponse>
</env:Body>
</env:Envelope>
看来目标服务正在响应WSDL中未定义的内容,导致客户端返回空值,但我不确定
任何人都可以了解这里可能发生的事情吗?
注意 :客户端没有遇到异常