VB.net肥皂客户端不在PHP肥皂服务器上工作

时间:2011-12-27 22:56:12

标签: php vb.net soap nusoap

我使用nusoap在PHP中编写了一个soap服务。它与我在PHP中编写的测试客户端一起工作正常,但是,我们的客户在vb.net中编写了他的客户端并且它无法工作。我看到没有错误,但服务没有正确解析他的请求。

我让nusoap生成WSDL,看起来很好。如果我将我发送的消息与他的一条消息进行比较,我确实看到了信封中的一些差异,但我不确定问题是在我的最终还是他的。

以下是好的和坏的回应。

好:

<?xml version="1.0" encoding="ISO-8859-1"?>
<SOAP-ENV:Envelope 
    SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">

  <SOAP-ENV:Body>
    <ns6361:uploadDocument xmlns:ns6361="http://tempuri.org">
      <__numeric_0>
        <firmCode xsi:type="xsd:string">999*site1</firmCode>
        <docID xsi:type="xsd:string">id</docID>
        <docType xsi:type="xsd:string">tif</docType>
        <document xsi:type="xsd:string">SUkqAMpDAAAmoFy..lots of data omitted here</document>
        </__numeric_0>
      </ns6361:uploadDocument>
    </SOAP-ENV:Body>
  </SOAP-ENV:Envelope>

为:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope 
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
    xmlns:tns="http://www.inassist.com/docupload" 
    xmlns:types="http://www.inassist.com/docupload/encodedTypes" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <q1:uploadDocument xmlns:q1="urn:server">
      <firmCode xsi:type="xsd:string">999*site1</firmCode>
      <docID xsi:type="xsd:string">0000007126</docID>
      <docType xsi:type="xsd:string">PDF</docType>
      <document xsi:type="xsd:base64Binary">JVBERi0xLj..data omitted...</document>
    </q1>
  </soap:Body>
</soap:Envelope>

任何人都可以指出我正确的方向吗?谢谢。

1 个答案:

答案 0 :(得分:0)

在我看来,最好的问题是好的回复中的<__numeric_0>标签。

如果你可以修改你的结束以消除对这个标签的需要,那么唯一的另一个可能的问题看起来就像uploadDocument的命名空间,在错误的响应中是q1并且{{1在好文件中。