À 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 la SOAP_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]

Avez-vous un message d'erreur (erreur de déclaration allumé?)?
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