0

我需要使用 SOAP 向另一个 Web 服务器发送 XML 请求。

我需要将请求发送到:

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

我的代码在

http://mydomain/demo1/test.php

我是 SOAP 新手。查看我的代码:

$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);

但什么也没有发生。我需要得到回应。请问有人知道怎么做吗?

4

1 回答 1

0

尝试改变:

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

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

wsdl 链接仅给出了soap 消息格式的指南。您需要将请求发送到您的服务端点。

于 2013-03-27T22:25:04.633 回答