[Web Service] Web service qui appelle un autre web service.
Bonjour
J'ai fait un petit programme pour appeler un web service (fournit par un prestataire)
Code:
1 2 3
| $client = new SoapClient ("http://ws.oceansystem.com/prestataireWebService.php?wsdl");
$result = $client->getKMorH('XXX','XXX','AA-XXX-AA');
print_r($result); |
Tous fonctionne bien, j'ai le résultat
Citation:
Array ( [0] => stdClass Object ( [IDENTIFIANT_VEHICULE] => 999[LIBELLE_VEHICULE] => AA-XXX-AA[KM_OU_HORAMETRE] => 40006 [UNITE] => K ) )
Ce que je voudrais faire c'est créer un web service en php qui appelle le web service de mon prestataire.
j'ai trouver un exemple pour créer un web service en php et que j'ai modifier pour ap:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| <?php
//Adresse à utiliser dans Visual Studio http://127.0.0.1/ws/index.php?wsdl
/**********************************
* INCLUDES *
**********************************/
require_once('lib/nusoap.php');
/**********************************
* NUSOAP *
**********************************/
$namespace = "127.0.0.1/ws/";
$server = new soap_server(); //creation du serveur SOAP
$server->configureWSDL("SimpleService"); //Configuration du WSDL
$server->wsdl->schemaTargetNamespace = $namespace; //Configuration du namespace
/**********************************
* NUSOAP FONCTION SIMPLE *
**********************************/
//On définit la fonction simple
function FonctionSimple($who) {
//return "Hello $who";
$client = new SoapClient ("http://ws.oceansystem.com/prestataireWebService.php?wsdl");
$result = $client->getKMorH('xxx','xxx','AA-XXX-AA');
return $result;
}
//On enregistre la méthode simple sur le serveur SOAP
$server->register(
// method name:
'FonctionSimple',
// parameter list:
array('name'=>'xsd:string'),
// return value(s):
array('return'=>'xsd:string'),
// namespace:
$namespace,
// soapaction: (use default)
false,
// style: rpc or document
'document',
// use: encoded or literal
'literal',
// description: documentation for the method
'A simple Hello World web method');
// Get our posted data if the service is being consumed
// otherwise leave this data blank.
$POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA'])
? $GLOBALS['HTTP_RAW_POST_DATA'] : '';
// pass our posted data (or nothing) to the soap service
$server->service($POST_DATA);
exit();
?> |
Lorsque j'appelle mon web service,
Code:
1 2
| $client = new SoapClient ("http://localhost/WebServices/webservices.php?wsdl");
$result = $client->FonctionSimple("xxx"); |
voici le résultat que j'obtiens...
Je ne comprends pas pourquoi je n'obtiens pas la même chose que lorsque j'appelle directement le web service du prestataire
Si vous pouvez m'aider...là je ne sais plus quoi faire..;
Merci