Peki burada ben kullanmaya çalışıyorum API: http://www.hotelscombined.com/api/LiveRates.asmx?op=HotelSearch
İşte ben denedim kodu:
$client = new SoapClient('http://www.hotelscombined.com/api/LiveRates.asmx?WSDL');
echo '<pre>'; var_dump($client->__getFunctions()); echo '</pre><br /><br /><br />';
//since the above line returns the functions I am assuming everything is fine but until this point
try
{
$client->__soapCall('HotelSearch',
array(
'ApiKey' => 'THE_API_KEY_GOES_HERE', // note that in the actual code I put the API key in...
'UserID' => session_id(),
'UserAgent' => $_SERVER['HTTP_USER_AGENT'],
'UserIPAddress' => $_SERVER['REMOTE_ADDR'],
'HotelID' => '50563',
'Checkin' => '07/02/2009',
'Checkout' => '07/03/2009',
'Guests' => '2',
'Rooms' => '1',
'LanguageCode' => 'en',
'DisplayCurrency' => 'usd',
'TimeOutInSeconds' => '90'
)
);
}
catch (Exception $e)
{
echo $e->getMessage();
}
Anywho bu bir istisna atar ve aşağıdaki echos:
Server was unable to process request. ---> Object reference not set to an instance of an object.
NOT: bu yüzden ben sadece temelden yanlış bir şey yapıyorum mümkün önce SOAP'ı hiç kullanmadım, bana doğru yönde almak için bile küçük bir ipucu derece mutluluk duyacağız
(Ben her zaman tamsayı şeklinde olması tamsayılar değiştirmeyi denedim ve aynı tarihleri ile): Tom Haigh aynı hata mesajı dönen görünüyor başka bir dizideki değerleri sarma önerdi
try
{
$client->__soapCall('HotelSearch',
array('request' =>
array(
'ApiKey' => 'THE_API_KEY_GOES_HERE', // note that in the actual code I put the API key in...
'UserID' => session_id(),
'UserAgent' => $_SERVER['HTTP_USER_AGENT'],
'UserIPAddress' => $_SERVER['REMOTE_ADDR'],
'HotelID' => '50563',
'Checkin' => '2009-07-02',
'Checkout' => '2009-07-03',
'Guests' => 2,
'Rooms' => 1,
'LanguageCode' => 'en',
'DisplayCurrency' => 'usd',
'TimeOutInSeconds' => 90
) )
);
}
catch (Exception $e)
{
echo $e->getMessage();
}