Мыльный клиент VB.net не работает на мыльном сервере PHP - PullRequest
0 голосов
/ 28 декабря 2011

Я написал мыльный сервис на PHP, используя nusoap. Он отлично работает с тестовым клиентом, который я написал на 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>

Bad:

<?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 голосов
/ 28 декабря 2011

Мне кажется, что самой большой проблемой будет тег <__numeric_0> в хорошем ответе.

Если вы можете изменить свой конец, чтобы устранить необходимость в этом теге, то единственная другая возможная проблема выглядит как пространство имен для uploadDocument, которое равно q1 в плохом ответе и ns6361 в хорошем документе .

...