Uncaught exception de type soapfault: [HTTP] Erreur de Récupérer les en-têtes http
Je suis en train de créer une connexion soap pour Magento web services, cependant j'obtiens une erreur lorsque j'essaie de créer une instance de la client soap en classe. Je peux afficher le fichier wsdl dans firefox sans problème et je peux regarder php en faire la demande pour le wsdl dans apaches journaux, mais il ne fonctionne toujours pas. Nusoap peut se connecter.
$proxy = new SoapClient('someaddress?wsdl');
L'erreur est
<b>Fatal error</b>: Uncaught SoapFault exception: [HTTP] Error Fetching http headers in /home/sites/xxx/xxx_main/system/application/views/contentpage_templates/gift_service.php:29
Stack trace:
[internal function]: SoapClient->__doRequest('<?xml version="...', 'http://cornishw...', 'urn:Mage_Api_Mo...', 1, 0)
[internal function]: SoapClient->__call('call', Array)
/home/sites/xxx/xxx_main/system/application/views/contentpage_templates/gift_service.php(29): SoapClient->call(NULL, 'catalog_categor...', 5, 'giftshop')
/home/sites/xxx/xxx_main/system/application/libraries/MY_Loader.php(586): include('/home/sites/cor...')
/home/sites/xxx/xxx_main/system/application/libraries/MY_Loader.php(228): MY_Loader->_ci_load(Array, '')
/home/sites/xxx/xxx_main/system/application/modules/contentpage/controllers/contentpage.php(44): MY_Loader->view('contentpage_tem...', false, true)
[internal function]: Contentpage->index()
/home/sites/xxx in <b>/home/sites/xxx/xxx_main/system/application/views/contentpage_templates/gift_service.php</b> on line <b>29</b>
Grâce
- Je peux me tromper, mais la ligne avec "gift_service.php(29): SoapClient->appel(NULL, 'catalog_categor...", dans la pile d'appel ne semble pas correspondre à "$proxy = new SoapClient", mais quelque chose comme "proxy->catalog_categories()"? S'il vous plaît (double) case à la ligne 29 de l'gift_service.php
Vous devez vous connecter pour publier un commentaire.
Essayez de définir :
dans votre
php.ini
fichier.ini_set('default_socket_timeout', 120)
, qui vous donnera la valeur d'origine si vous voulez le restaurer par la suite.Avez-vous essayez d'ajouter
de SoapClient création de paramètres:
pour voir ce qui se passe?
Cette erreur peut apparaître sur le client si il y a un problème sur le serveur. Par exemple, si le serveur SOAP est un script PHP avec une erreur d'analyse, le client échoue avec ce message.
Si vous êtes dans le contrôle du serveur, la queue de votre error_log d'Apache sur la machine qui héberge le serveur SOAP. Sur CentOS, vous le trouverez dans /var/log/httpd/error_log, de sorte que la commande est:
tail-f /var/log/httpd/error_log
Maintenant actualiser le client et de regarder pour le message d'erreur. Toutes les erreurs PHP avec le serveur de script sera montré.
Espère que ça aide quelqu'un.
J'ai connu le même problème.
Je courais comme de la CLI. Si PHP est toujours en cours d'exécution et il a dû faire appel soap encore et encore après un certain intervalle de temps.
L'erreur que j'ai fait a l'aide d'un singleton pour cela. Je pensais utiliser de singleton sera la cause de gain de performance, mais inturn j'ai eu
Je l'ai fixée par la création de nouveaux lspg objet pour chaque appel.
Je ne suis pas à propos de votre configuration de PHP, mais jusqu'à ce que PHP 5.2.6 , PHP a quelques problème avec du SAVON client :
Bug #41983 - Erreur de Récupérer les en-têtes http
Si c'est un Magento liées problème, vous devez désactiver le renouvellement automatique de l'indexation de ce qui pourrait être à l'origine de la prise d'expiration ou d'échéance). Vous pouvez retourner sur le dos une fois que le script a fini ses tâches. L'augmentation de la valeur par défaut délai d'attente du socket en php.ini est aussi une bonne idée.
J'ai fait face à un même problème et j'ai essayé toutes les solutions ci-dessus. Malheureusement, rien n'travail.
Tout ce jeu d'en-têtes que nous sommes de passage. J'ai résolu mon problème avec l'ajout de la compression en-tête de la propriété. Cette obligation lorsque vous attendez une réponse dans gzip format compressé.
Espère que cela aide.
Bonne chance.
Dans mon journal des erreurs d'apache, j'ai vu:
J'ai donc, supprimé tout le contenu de mon plus grand fichier journal 2.1 GO /var/log/system.journal. Maintenant tout fonctionne.
Il y a un problème dans la version de php inférieure à 5.2.6. Vous devrez peut-être mettre à jour la version de php.
Veuillez mettre à jour votre php.ini avec
Vous pouvez créer votre propre php.ini si php est installé un CGI au lieu d'un module Apache