Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Services Web
Services Web Forum d'entraide pour les services Web en PHP, qui permettent de créer et de consommer facilement des webservices (génération de WSDL etc.). Exemples : SOAP, NuSOAP, REST, SCA-SDO... Avant de poster -> Cours webservices
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/07/2006, 14h18   #1
hxt
Invité de passage
 
Inscription : mars 2005
Messages : 23
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 23
Points : 4
Points : 4
Par défaut [SOAP] Service Web/XML, Problème d'entête HTTP SOAPAction

Bonjour,

Je vous explique donc mon problème.
J'essaie d'utiliser un service web, celui-ci doit me renvoyer le profil d'un client en fonction d'un identifiant unique.

J'ai donc fait mon client en utilisant NuSOAP.
Code :
1
2
3
4
5
6
7
8
9
10
 
require("nusoap.php");
 
$ins = new soapclient("http://XXXXXXX/service.asmx?WDSL");
 
$param = array('aClientCardID'=>'1111111');
$xml_rec = $ins->call('wsGetClientProfile',$param);
//---------
//---------
print_r($xml_rec);
Et j'obtiens comme message d'erreur :
Citation:
Array ( [faultcode] => soap:Client [faultstring] => Le serveur n'a pas reconnu la valeur de l'en-tête HTTP SOAPAction : . [detail] => )
C'est là où je bloque...il faut donc que je "définisse" un en-tête HTTP SOAPAction, je suppose ? Comment fait-on cela et comment l'envoyer au serveur ?

Si vous avez une idée..

Je vous remercie d'avance,
hxt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2006, 14h21   #2
Membre chevronné
 
Avatar de stunti
 
Inscription : mai 2006
Messages : 521
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : mai 2006
Messages : 521
Points : 602
Points : 602
regarde la version de SOAP supportee par le serveur car SOAPAction est apparu dans la version 1.1 me semble t'il de SOAP.
__________________
If it's not broken, don't fix it.
BiliBa Built on top of Zend Framework
stunti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2006, 14h37   #3
hxt
Invité de passage
 
Inscription : mars 2005
Messages : 23
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 23
Points : 4
Points : 4
Merci pour ta réponse.

Je viens de regarder, le serveur supporte la version 1.2 de SOAP.

Pour info, je suis sous PHP 5 (au cas où ca peut vous guider).
hxt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2006, 14h59   #4
Membre chevronné
 
Avatar de stunti
 
Inscription : mai 2006
Messages : 521
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : mai 2006
Messages : 521
Points : 602
Points : 602
Pourquoi utiliser NuSOAP et pas l'extension de PHP5 ?

http://www.zend.com/php5/articles/ph...iew=1#Heading3
__________________
If it's not broken, don't fix it.
BiliBa Built on top of Zend Framework
stunti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2006, 12h00   #5
hxt
Invité de passage
 
Inscription : mars 2005
Messages : 23
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 23
Points : 4
Points : 4
J'essaye maintenant d'utiliser l'extension de PHP 5.

Mon code est le suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
try {
    // Nouvelle instance de la classe soapClient
    $client = new SoapClient(XXXXXX/service.asmx?WSDL',array('trace' => 1,'soap_version'  => SOAP_1_2,'encoding' => 'UTF-8'));
    // 
    $param = array('aClientCardID'=>'I5553882');
    $O =  $client -> __soapCall('wsGetClientProfile',$param);
    // Affichage du résultat
    print_r ($O);
} catch (SoapFault $fault) {
    echo $fault;
}
J'obtiens le message d'erreur suivant :

Citation:
SoapFault exception: [soap:Receiver] Le serveur n'a pas pu traiter la demande. ---> La référence d'objet n'est pas définie à une instance d'un objet. in C:\wamp\www\wsAddDejaVu3.php:17 Stack trace: #0 C:\wamp\www\wsAddDejaVu3.php(17): SoapClient->__soapCall('wsGetClientProf...', Array) #1 {main}

Pfff, qu'est ce que cela signifie ? Comment résoudre ce problème ?

Merci d'avance,
hxt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2007, 16h15   #6
Candidat au titre de Membre du Club
 
Inscription : juillet 2005
Messages : 26
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : juillet 2005
Messages : 26
Points : 13
Points : 13
Up !

Bonjour,

Je fais remonter ce topic, car j'ai le même problème que hxt. J'essaie d'appeler un webservice en utilisant nusoap, et j'obtiens le message d'erreur
Citation:
[faultcode] => soap:Client [faultstring] => Le serveur n'a pas reconnu la valeur de l'en-tête HTTP SOAPAction : . [detail] =>
Mon code est le suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function callWs($urlWs, $nomMethode, $arrayParametres)
{	
	$client = new soapclient($urlWs);
	$err = $client->getError();
	if ($err) {echo 'err1 ' . $err ; }
 
	$res = $client->call($nomMethode, $arrayParametres);
 
	if ($client->fault) {echo 'res1 ' . $res ; }
	else 
	{
		$err = $client->getError();
		if ($err){ echo 'err2' . $err ; }
		else {echo 'res2 ' . $res ;}
	}	
}
Le message d'erreur apparait à la ligne contenant "res1".

J'utilise php 4.3.10.

Peut-être quelqu'un connaît-t-il une solution à ce problème ?

Merci d'avance pour vos réponses ...
chocogrenouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2007, 09h50   #7
Candidat au titre de Membre du Club
 
Inscription : juillet 2005
Messages : 26
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : juillet 2005
Messages : 26
Points : 13
Points : 13
Bon, au cas où quelqu'un aurait le même problème, voilà la solution : il faut rajouter le paramètre soapAction quand on appelle la méthode call :
Code :
$client->call($nomMethode, $arrayParametres,'','http://tempuri.org/'.$nomMethode);
chocogrenouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2008, 13h38   #8
Invité de passage
 
Inscription : octobre 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 5
Points : 1
Points : 1
Bonjour,
quel est le parametre : " http://tempuri.org/ " ??? s'agit-il du namespace?? car en ajoutant ta ligne une erreur se produit :

Array ( [faultcode] => soapenv:Client [faultstring] => Exception occurred while trying to invoke service method getUserID [detail] => Array ( [Exception] => org.apache.axis2.AxisFault: Exception occurred while trying to invoke service method getUserID at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:157) at org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.receive(AbstractInOutSyncMessageReceiver.java:39) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:144) at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:279) at org.apache.axis2.transport.http.HTTPWorker.service(HTTPWorker.java:216) at org.apache.axis2.transport.http.server.AxisHttpService.doService(AxisHttpService.java:275) at org.apache.axis2.transport.http.server.AxisHttpService.handleRequest(AxisHttpService.java:184) at org.apache.axis2.transport.http.server.HttpServiceProcessor.run(HttpServiceProcessor.java:74) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690) at java.lang.Thread.run(Thread.java:619) Caused by: java.lang.NullPointerException at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:95) ... 10 more ) ) Check for a fault

merci
matla est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h03.


 
 
 
 
Partenaires

Hébergement Web