Cela m'a embêté pendant des jours; J'essaie d'envoyer un message SOAP via Curl mais je continue à recevoir une erreur "impossible de se connecter à l'hôte", mais je ne vois vraiment pas comment.Comment envoyer du XML SOAP via Curl et PHP?
J'ai une version ASP qui fonctionne bien avec la même URL et les mêmes données. Je pense que c'est juste une chose PHP/Curl.
J'ai actuellement le code suivant (les données CURLOPT_POSTFIELDS
est une chaîne d'enveloppe SOAP valide):
$soap_do = curl_init();
curl_setopt($soap_do, CURLOPT_URL, "https://xxx.yyy.com:517/zzz.asmx");
curl_setopt($soap_do, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($soap_do, CURLOPT_TIMEOUT, 10);
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true);
curl_setopt($soap_do, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($soap_do, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($soap_do, CURLOPT_POST, true);
curl_setopt($soap_do, CURLOPT_POSTFIELDS, '<soap:Envelope>...</soap:Envelope>');
curl_setopt($soap_do, CURLOPT_HTTPHEADER, array('Content-Type: text/xml; charset=utf-8', 'Content-Length: '.strlen('<soap:Envelope>...</soap:Envelope>')));
if(curl_exec($soap_do) === false)
{
$err = 'Curl error: ' . curl_error($soap_do);
curl_close($soap_do);
return $err;
}
else
{
curl_close($soap_do);
return 'Operation completed without any errors';
}
donc des idées pourquoi il juste des erreurs tout le temps?
La version ASP fonctionne bien! Le code est:
Set xmlhttp = server.Createobject("MSXML2.ServerXMLHTTP")
xmlhttp.Open "POST","https://xxx.yyy.com:517/zzz.asmx"
xmlhttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
xmlhttp.Send('<soap:Envelope>...</soap:Envelope>')
Je n'ai jamais eu de réponse qui a fonctionné pour moi, et c'était il y a plus de 2 ans maintenant.Les gens semblent trouver cette réponse utile, donc je vais la marquer comme la réponse.Merci –
Quelqu'un peut-il m'aider avec le vice vice versa tourner la demande de boucle comme ci-dessus à une demande soapclient? – mahen3d