I2C: Quatres nouvelles fonctions SOAP

Quatre nouvelles fonctions ont été ajoutées aujourd’hui au SOAP d’I2C:

  • getCountries() – Permet de récupérer la liste de tous les pays disponibles sous forme de leur code ISO séparés par des virgules
  • getCountryName($country_code, $langue) – Permet de récupérer le nom réel du pays en fonction de son code ISO dans la langue demandée
  • getContinent ($country_code) – Retourne le code du continent en fonction du code ISO du pays
  • getContinentName ($continent_code, $langue) – Retourne le nom réel du continent en fonction de son code dans la langue demandée

Lorsqu’il y a besoin de spécifier la langue, les langues disponibles sont:

  • fr_FR – Français
  • (par défaut)

  • en_US – English

Note: d’ici peu, d’autres langues vont arriver.

Vous pouvez dès à présent utiliser ces fonctions, sans même avoir un compte utilisateur, sans même utiliser la fonction login.

facebooktwittergoogle_plusredditpinterestlinkedinmail

Vider le cache (php) des fichiers WSDL

En PHP, on peut spécifier l’option wsdl_cache à 0 pour désactiver le cache des fichiers WSDL. Le problème, c’est que si la commande (SoapClient) a déjà été éxécutée sans cette option, le fichier est en cache et même avec cette option, le fichier cachée est utilisé. En fait, wsdl_cache interdit la mise en cache du fichier et non l’utilisation du fichier caché.

Pour vider le cache, il vous suffit de supprimer tous les fichiers commencant par wsdl- dans le répertoire temporaire /tmp. Exécutez en root:

facebooktwittergoogle_plusredditpinterestlinkedinmail

PHP SOAP: looks like we got no XML document

SOAP est un protocol vraiment très pratique mais la création du fichier wsdl est parfois compliquée… Il arrive de plus que parfois il y ai des erreurs que l’on ne peut pas vraiment indentifer. Si une erreur comme celle-ci vous arrive, voici comment débugger :

SoapFault exception: [Client] looks like we got no XML document

Cela signifie que la réponse reçue par SoapClient de la part du serveur n’est pas sous la forme d’un XML ou est sous la forme d’un XML mais cassé. Dans un premier temps, il faut ajouter l’option trace avec une valeur 1 aux options de SoapClient. Exemple:

Pour plus d’informations sur wsdl_cache, lisez le petit article sur le cache WSDL et PHP.

Ensuite, pour savoir exactement ce que SoapClient a reçu, il vous suffit d’appeller la fonction __getLastResponse :

Note: Il existe aussi la fonction __getLastRequest qui retourne la requête précédente.

facebooktwittergoogle_plusredditpinterestlinkedinmail

SoapFault exception: [HTTP] Error Fetching http headers

Lors d’une utilisation longue de SOAP (des miliers de commandes ou des commandes très longues côté serveur), il arrive souvent que SOAP Client retourne une exception comme celle-ci:

Continue reading SoapFault exception: [HTTP] Error Fetching http headers

facebooktwittergoogle_plusredditpinterestlinkedinmail