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/04/2011, 11h21   #1
Membre du Club
 
Avatar de waldo2188
 
Inscription : mars 2004
Messages : 114
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 114
Points : 64
Points : 64
Par défaut SoapClient et authentification (encore un, mais en plus complex)

Bonjour à tous!

Comme beaucoup je tente avec PHP et SoapClient d'accéder à un Web Service protégé. Celui-ci est protégé par un login et mot de passe.

Code :
1
2
3
4
5
6
7
8
9
10
11
 
$adresseWebServiceWsdl = "https://acces.tralala.org/tralala-service-recherche/RechercheService?wsdl";
$options = array(
	"login" => $login,
	"password" => $mdp,
	"authentication" => SOAP_AUTHENTICATION_BASIC,
	"trace" => true,
	"exceptions" => 0,
	"cache_wsdl" => WSDL_CACHE_NONE);
 
	$soapClient = new SoapClient($adresseWebServiceWsdl, $options);
Le problème que je rencontre ne vient pas de la récupération du WSDL qui à l'air de fonctionné au vue de l'erreur que je rencontre :
Code :
Warning: SoapClient::SoapClient(https://acces.taratata.org:443/tralala-service-web/RechercheService?xsd=1) [soapclient.soapclient]: failed to open stream: HTTP request failed! HTTP/1.1 401 Non-Autorisé in /home/xxxx/www/xxxx/recherche.php on line 12

l'adresse "https://acces.taratata.org:443/tralala-service-web/RechercheService?xsd=1" fait partie d'un import dans le WSDL
Code :
<xsd:import namespace="http://tralala.org" schemaLocation=""https://acces.taratata.org:443/tralala-service-web/RechercheService?xsd=1"/>

Je vous rassure cette adresse est accessible depuis un navigateur, bien sûr sous réserve de renseigner le login et mot de passe dans la boite de dialogue d'authentification.

J'ai l'impression que SoapClient procède bien à l'identification lors de la récupération du WSDL mais pas pour le xsd...

Quelqu'un à déjà rencontré ce problème?
__________________
Waldo2188
waldo2188 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 11h59   #2
Membre du Club
 
Avatar de waldo2188
 
Inscription : mars 2004
Messages : 114
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 114
Points : 64
Points : 64
Problème résolut!

Pour les prochain l'erreur est expliqué en détail ici : http://bugs.php.net/bug.php?id=52893

et pour faire cour:
adresse du wsdl : https://acces.tralala.org/tralala-se...heService?wsdl
adresse du xsd : https://acces.taratata.org:443/trala...eService?xsd=1

le problème vient du faite que l'adresse du WSDL ne comporte pas le numéro de port ":443"

Si on ajoute le numéro de port à l'adresse du WSDL ça passe tout debout!
__________________
Waldo2188
waldo2188 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h22.


 
 
 
 
Partenaires

Hébergement Web