2010-12-13 55 views
0

je lance client soap:php: client de savon, obtenir des données de la classe

$dir = "http://address.com/?Version=1.0,wsdl=1"; 

$client = new SoapClient($dir); 

Et ce serveur est classe:

all_user 

    * return: array 
    * access: public 

all_user_dt[] get_user(string $id) 

    * string $id 

comment obtenir des informations de cette classe? J'essaie:

$client->all_user->get_user('213'); 

Mais ne va pas, j'obtiens l'erreur:

Fatal error: Uncaught SoapFault exception: [HTTP] Unauthorized in C:\www\index.php:38 Stack trace: #0 [internal function]: SoapClient->__doRequest('<?xml version="...' ... 
+0

Salut, avez-vous essayé le code suivant? '$ client-> get_user ('213');' –

+0

oui, la même erreur – user319854

Répondre

1

"Uncaught exception SoapFault: HTTP non autorisée ..." Je suppose que vous n'êtes pas autorisé. Dites à SoapClient comment authentifier en utilisant le $options parameter.

+0

Salut, merci pour l'aide;) Si j'imprime: $ client, j'obtiens SoapClient Object ( [_soap_version] => 1 [sdl ] => ID de ressource # 4 ) Donc je pense que je me connecte avec succès, ou non? – user319854

+0

Euh, non? Le SoapClient utilise HTTP (comme dans '$ dir'). Pourquoi devrait-il maintenir une connexion ouverte? Cette ressource est probablement un descripteur du fichier WSDL. Mais même s'il s'agit bien d'une socket TCP, le message indique clairement une erreur sur une couche supérieure de la pile de protocoles. Je répète: Authentifiez! – rik