简体   繁体   中英

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

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?

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM