2017-03-28 7 views
0

私は石鹸を使用してWebサービスを統合しようとしています。石鹸のボディは常に空白

これはXMLファイルです:

http://uatapiout.islandhopper.in/Service1.svc?wsdl

そして、これは私がしようとしているコードです:

<?php 

$wsdl = 'http://uatapiout.islandhopper.in/Service1.svc?wsdl'; 

$xml_array["RequestType"] = "AvailabilityRQ"; 
$xml_array["Login"] = array("UserName"=>"test","Password"=>"test","Version"=>"3.0"); 

$xml_array["CheckAvailabilityCriteria"] = array("CheckIn" => "07/05/2017","CheckOut"=> "07/11/2017","CountryID"=> "MAU","CityID" => "MAU","Currency" => "USD","Adult" => "2","Rooms"=>array("Room"=>array("Adult"=>"2","Child"=>"0"))); 

$trace = true; 
$exceptions = true; 

try 
{ 

    $client = new SoapClient($wsdl, array('trace' => 1)); 

    $response = $client->HotelSearch($xml_array); 

    print_r($client->__getLastRequest()); 
    print_r($client->__getLastResponse()); 

} 

catch (Exception $e) 
{ 
    echo "Error!"; 
    echo $e ->getMessage(); 
    echo 'Last response: '. $client->__getLastResponse(); 
} 

と$クライアントを - > __ getLastRequest()常に私に空白の体を与える:

<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/"><SOAP-ENV:Body><ns1:HotelSearch/></SOAP-ENV:Body></SOAP-ENV:Envelope> 

質問には、このリクエストに空白が含まれている理由があります 体。

どうか私は間違っていますか?

ありがとうございます。

編集:

これはサンプルXMLリクエストです:

<XMLRequest> 
<RequestType>AvailabilityRQ</RequestType> 
<Login> 
    <UserName>UserName</UserName> 
    <Password>Password</Password> 
    <Version>3.0</Version> 
</Login> 
<CheckAvailabilityCriteria> 
    <CheckIn>07/05/2016</CheckIn> 
    <CheckOut>07/11/2016</CheckOut> 
    <CountryID>MAU</CountryID> 
    <CityID>MAU</CityID> 
    <Currency>USD</Currency> 
    <HotelCode></HotelCode> 
    <HotelName></HotelName> 
    <ClientNationality></ClientNationality> 
    <Rooms> 
     <Room> 
      <Adult>2</Adult> 
      <Child>2</Child> 
      <ChildAges> 
       <ChildAge>7</ChildAge> 
       <ChildAge>14</ChildAge> 
      </ChildAges> 
     </Room> 
     <Room> 
      <Adult>2</Adult> 
      <Child>0</Child> 
     </Room> 
    </Rooms> 
</CheckAvailabilityCriteria> 
</XMLRequest> 
+0

'$応答= $クライアント - >のHotelSearch.com($ xml_array)というものです役立ちますか;'? – hassan

+0

それは彼が電話する必要がある方法でしょう。しかし、問題は$ xml_arrayです。あなたは正しいソープヘッダーを作っていません。 – Elbarto

+0

@ハッサン、返信ありがとうございます。はい、それはAPIのメソッド –

答えて

0

ご支援ありがとうございました。

今、私はnusaop libを使用しています。

これはコードです:

require_once('nusoap/lib/nusoap.php'); 
$wsdl = 'wdls url'; 

$xml_array["RequestType"] = "AvailabilityRQ"; 
$xml_array["Login"] = array("UserName"=>"username","Password"=>"password","Version"=>"version"); 

$xml_array["CheckAvailabilityCriteria"] = array("CheckIn" => "07/05/2017","CheckOut"=> "07/11/2017","CountryID"=> "MAU","CityID" => "MAU","Currency" => "USD","Rooms"=>array("Room"=>array("Adult"=>"2","Child"=>"0"))); 

$xml_array1['XMLRequest'] =$xml_array; 


$client = new nusoap_client($wsdl, false); 
$client->soap_defencoding = 'UTF-8'; 

$err = $client->getError(); 

if ($err) 
{ 
    echo '<h2>Constructor error</h2><pre>' . $err . '</pre>'; 
    echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->getDebug(), ENT_QUOTES) . '</pre>'; 
    exit(); 
} 

$result = $client->call('HotelSearch', $xml_array1,'','http://tempuri.org/IService1/HotelSearch',false,false,'',''); 

if ($client->fault) 
{ 

    echo '<h2>Fault (Expect - The request contains an invalid SOAP body)</h2>'; 
} 
else 
{ 
    $err = $client->getError(); 

    if ($err) 
    { 
     echo '<h2>Error</h2><pre>' . $err . '</pre>'; 
    } 
    else 
    { 

     $result_count = $array_result['TotalResult']; 

     if($result_count) 
     { 
      $hotels_list = $array_result['AvailHotels']['Hotel']; 

      for($i=0; $i<count($hotels_list);$i++) 
      { 
       $hotel_name = $hotels_list[$i]['@attributes']['Name']; 
       $hotel_code = $hotels_list[$i]['@attributes']['Code']; 

       echo "Hotel name is <i>$hotel_name</i> and hotel code is <i>$hotel_code</i>"; 

       echo "</br></br>"; 
      } 
     } 

    } 
} 

希望、これは誰か:)