Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Utilisation de la classe SoapClient pour des messages XML, non WSDL

27 views
Skip to first unread message

fredo

unread,
Oct 8, 2009, 6:45:00 AM10/8/09
to
Bonjour,

J'essaye sans succ�s de me connecter � un service web (SOAP 1.1) qui
utilise des messages XML sans fichier WSDL.

Toute la documentation que j'ai pu trouver est bas�e sur du WSDL, il y
a tr�s peu de documentation sur les envois directe de message XML.

Voici le code :

$location = 'https://test.reservit.com/testota';
$login = 'foo';
$password = 'bar';
$CompanyName = 'baz';
$ChainCode = '00';


$request = '<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<OTA_HotelSearchRQ Version="2006" MaxResponses="100"
xmlns="http://www.opentravel.org/OTA/2006/01"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<POS>
<Source>
<RequestorID Type="2" ID="0">
<CompanyName>'.$CompanyName.'</CompanyName>
</RequestorID>
</Source>
</POS>
<Criteria>
<Criterion>
<!-- On which list of hotels, or channel I make the search -->
<HotelRef ChainCode="'.$ChainCode.'" />
</Criterion>
<Criterion>
<!-- The period ! which is mandatory -->
<StayDateRange Start="2009-10-06" End="2009-10-15" />
</Criterion>
</Criteria>
</OTA_HotelSearchRQ>
</soap:Body>
</soap:Envelope>';


$client = new SoapClient(null, array('location' => $location,
'uri' => 'http://
www.opentravel.org/OTA/2006/01',
'style' => SOAP_DOCUMENT,
'use' => SOAP_LITERAL,
'login' => $login,
'password' => $password,
'trace' => 1));

$client->__doRequest($request, $location, 'POST', SOAP_1_1);

echo "<br>\nRequestHeaders :<br>\n" . $client->__getLastRequestHeaders
() . "<br>\n";
echo "<br>\nRequest :<br>\n" . $client->__getLastRequest() . "<br>\n";
echo "<br>\nResponseHeaders :<br>\n" . $client-
>__getLastResponseHeaders() . "<br>\n";
echo "<br>\nResponse :<br>\n" . $client->__getLastResponse() . "<br>
\n";

La m�thode "__getLastRequestHeaders" affiche l'en-t�te envoy�.

Ce qui m'�tonne, c'est que la m�thode "__getLastRequest" ne retourne
rien.

Est-ce que j'utilise correctement le m�thode "__doRequest" ?

Merci de vos r�ponses.

0 new messages