À l'aide de PHP SOAP client en mode non-WSDL
Je suis en train de travailler sur une api pour un client. J'ai reçu les informations suivantes:
API Url: http://xyz-crm.example/WebAPI/Custom/project_name/XML/
Username: foobar
password: spameggs
J'ai besoin de configurer le PHP SOAP client pour le même en mode non-WSDL. J'ai écrit ce qui suit, mais il ne semble pas fonctionner:
$wsdl = null;
$options = array(
'uri' => 'http://xyz-crm.example/WebAPI/Custom/project_name/XML/',
'location' => 'http://xyz-crm.exmaple.com/WebAPI/Custom/project_name/XML/',
'login' => 'foobar',
'password' => 'spameggs'
);
$client = new SoapCLient($wsdl, $options);
Je veux juste faire un ping réussie de l'api au premier abord. De voir si les choses fonctionnent très bien. Ce que je fais mal?
Mise à jour de 1
J'ai fait les modifications suivantes:
$wsdl = null;
$options = array(
'uri' => "http://xyz-crm.example/WebAPI/Custom/project_name/XML/",
'location' => "http://xyz-crm.example/",
'Username' => "foobar",
'Password' => "spameggs",
'soap_version' => '1.2'
);
$client = new SoapClient($wsdl, $options);
$client = $client->getListings();
J'obtiens l'erreur: looks like we got no XML document
[Modifier par moi, hakre: Cette mise à jour a été fait comme un retour à réponse #1. Il modifie le emplacement option à l'aide d'une URL raccourcie (la raison n'est pas donné par l'OP) et il ajoute le soap_version option (comme suggéré dans la réponse #1, mais pas comme une constante, mais comme une chaîne de caractères (contenant une valeur non valide), donc il ne devrait pas être étonnant que cela crée une erreur, une correcte option valeur est donnée dans la réponse #1 (le
SOAP_1_1
constante) et par l'intention, la valeur correcte serait laSOAP_1_2
constante pour cet exemple). Message d'erreur comme indiqué par l'OP a été "SAVON de Panne: Problème de version."]
Mise à jour 2
J'ai essayé ce qui suit, mais il ne parvient toujours pas:
$listing = $client->getListings();
$request = $client->__getLastRequest();
L'exécution s'arrête à la première ligne elle-même, sans jamais aller à la seconde.
[Modifier par moi, hakre: l'examen a montré une mauvaise configuration des options dans mise à Jour de 1 déjà qui ne sont pas abordées dans mise à Jour 2 ce serait un miracle si elle n'est pas en panne. L'exécution s'arrête parce qu'un Exception est levée et sans erreur/exception est faite]
SAVON de Panne: Problème de version. C'est l'erreur que j'obtiens. Je suis un peu confus par l'api uri. Sur le net je vois des exemples .asmx que le format de l'uri ou un emplacement. C'est la première fois que je travaille avec du SAVON.
OriginalL'auteur Varun Jain | 2013-10-29
Vous devez vous connecter pour publier un commentaire.
Mourir URI ou fichier qui se termine n'a pas d'importance, il pourrait même être
.jpg
, il n'y a pas de valeur par défaut.Jetez un oeil à des questions similaires: Cette erreur SOAP dire ce que je pense que cela signifie?
Il serait utile si vous mettez le message d'erreur dans la question, ainsi que de la sortie XML de votre demande.
essayez de définir la Version SOAP dans le tableau de votre
SoapClient
exemple à l'une des constantes (essayez différents):ou
SOAP_1_2
...Pour déboguer le code XML essayer la réponse de Inspecter XML créé par PHP SoapClient appel avant/sans l'envoi de la demande
Le message d'erreur de mise à jour de votre question ne ressemble pas à ça venant de PHP, ressemble plus à une réponse de la webservice, signifie que votre demande est en fait de travail.
OriginalL'auteur Daniel W.