2017-09-06 2 views
0

Voici le WSDLEst-ce que ce WSDL supporte Soap 1.1 AND Soap1.2?

Dans la section reliure, il comprend:

<wsdl:operation name="SubmitPurchaseOrder"> 
<soap:operation soapAction="http://tempuri.org/IEBusinessService/SubmitPurchaseOrder" style="document"/> 
<wsdl:input> 
<soap:body use="literal"/> 
</wsdl:input> 
<wsdl:output> 
<soap:body use="literal"/> 
</wsdl:output> 
</wsdl:operation> 

Il comprend également:

<wsdl:operation name="SubmitPurchaseOrder"> 
<soap12:operation soapAction="http://tempuri.org/IEBusinessService/SubmitPurchaseOrder" style="document"/> 
<wsdl:input> 
<soap12:body use="literal"/> 
</wsdl:input> 
<wsdl:output> 
<soap12:body use="literal"/> 
</wsdl:output> 
</wsdl:operation> 

Cependant, lorsque je tente de se connecter avec 'soap_version' => SOAP_1_1 je reçois l'erreur il attend type 'application/soap+xml; charset=utf-8'

Répondre

0

réponse à ma question PROPRE

fichiers WSDL peuvent indiquer le soutien à la fois SOAP 1.1 et 1.2 dans le même fichier. Vous pouvez spécifier que vous utilisez avec la liaison:

SoapClient::__setLocation()

http://php.net/manual/en/soapclient.setlocation.php

WSHttpBinding

$client->__setLocation('https://api.krollcorp.com/EBusinessTest/Kroll.Dealer.EBusiness.svc/') 

BasicHttpBinding

$client->__setLocation('https://api.krollcorp.com/EBusinessTest/Kroll.Dealer.EBusiness.svc/Basic') 
1

Il y a 3 diférences principales entre SOAP 1.2 et SOAP 1,1

  1. SOAP 1.2 utilise "application/soap + xml" Content-Type et SOAP 1.1 utilisations "text/xml".
  2. SOAP 1.2 n'utilise pas la ligne d'en-tête SOAPAction.

  3. SOAP 1.2 utilise "http://www.w3.org/2003/05/soap-envelope" comme l'espace de noms d'enveloppe et SOAP 1.1 utilise "http://schemas.xmlsoap.org/soap/envelope/".

Le bon exemple que je suis arrivé de ressource: http://www.herongyang.com/Web-Services/Perl-SOAP-1-2-Request-Differences-SOAP-1-1-and-1-2.html est inférieure à

SOAP 1.1 request: 

POST /WSShakespeare.asmx HTTP/1.1 
Host: www.xmlme.com 
Content-Type: text/xml; charset=utf-8 
Content-Length: length 
SOAPAction: "http://xmlme.com/WebServices/GetSpeech" 

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    <GetSpeech xmlns="http://xmlme.com/WebServices"> 
     <Request>string</Request> 
    </GetSpeech> 
    </soap:Body> 
</soap:Envelope> 


SOAP 1.2 request: 

POST /WSShakespeare.asmx HTTP/1.1 
Host: www.xmlme.com 
Content-Type: application/soap+xml; charset=utf-8 
Content-Length: length 

<?xml version="1.0" encoding="utf-8"?> 
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> 
    <soap12:Body> 
    <GetSpeech xmlns="http://xmlme.com/WebServices"> 
     <Request>string</Request> 
    </GetSpeech> 
    </soap12:Body> 
</soap12:Envelope> 
+0

Je comprends les différences dans la demande de savon. Je demande si le fichier WSDL indiqué indique s'il faut utiliser Soap 1.2 ou Soap 1.1? Il semble que cela apporte un soutien aux deux, mais je ne suis pas sûr. –

+0

Il semble que votre question duplique celle-ci: https://stackoverflow.com/questions/736845/can-a-wsdl-indiquer-le-soap-version-1-1-ou-1-2-of- WSDL prend en charge les deux versions de savon et en plus il peut les supporter tous les deux dans le même wsdl. –