send an xml request to a another web server using soap in php

馋奶兔 提交于 2020-01-17 03:23:06

问题


I need to send an XML request to another web server using SOAP.

I need to send the request to:

http://59.162.33.102/ArzooWS/services/DOMFlightAvailability?wsdl

and my code is in

http://mydomain/demo1/test.php

I am new to SOAP. See my code:

$test ="<?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>  <getAvailability xmlns=\'http://avail.flight.arzoo.com\'>   <in0 xmlns=\'\'>  &lt;Request&gt;&lt;Origin&gt;BLR&lt;/Origin&gt;&lt;Destination&gt;DEL&lt;/Destination&gt;&lt;DepartDate&gt;2012-08-27&lt;/DepartDate&gt;&lt;ReturnDate&gt;2012-08-28&lt;/ReturnDate&gt;&lt;AdultPax&gt;1&lt;/AdultPax&gt;&lt;ChildPax&gt;0&lt;/ChildPax&gt;&lt;InfantPax&gt;0&lt;/InfantPax&gt;&lt;Currency&gt;INR&lt;/Currency&gt;&lt;Clientid&gt;My Id&lt;/Clientid&gt;&lt;Clientpassword&gt; my Password&lt;/Clientpassword&gt;&lt;ArzooFWS1.1&lt;/Clienttype&gt;&lt;Preferredclass&gt;E&lt;/Preferredclass&gt;&lt;mode&gt;ONE&lt;/mode&gt;&lt;PreferredAirline&gt;AI,G8,IC,6E,9W,S2,IT,9H,I7,SG&lt;/PreferredAirline&gt;&lt;/Request&gt;    </in0>  </getAvailability></soapenv:Body></soapenv:Envelope>";
$location_URL = "http://mydomain/demo1/test.php";
$action_URL = "http://59.162.33.102/ArzooWS/services/DOMFlightAvailability?wsdl";

$client = new SoapClient(null, array(
    'location' => $location_URL,
    'uri'      => "",
    'trace'    => 1,
));
try{
    $order_return = $client->__doRequest($test,$location_URL,$action_URL,1);
    //Get response from here
    print_r($order_return);
    $return = $client->__getLastResponse();  
    echo $return;
} catch (SoapFault $exception) {
    var_dump(get_class($exception));
    var_dump($exception);

But nothing happens. I need to get the response. Does anyone know how, please?


回答1:


Try changing:

$action_URL = "http://59.162.33.102/ArzooWS/services/DOMFlightAvailability?wsdl";

to

$action_URL = "http://59.162.33.102/ArzooWS/services/DOMFlightAvailability";

The wsdl link only gives guidelines to the soap message format. You need to send the request to your services endpoint.



来源:https://stackoverflow.com/questions/11502105/send-an-xml-request-to-a-another-web-server-using-soap-in-php

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!