Questo mi ha infastidito per giorni; Sto cercando di inviare un post SOAP tramite Curl, ma continuo a ricevere un errore "impossibile connettersi all'host", ma non riesco davvero a vedere come.Come posso inviare SOAP XML tramite Curl e PHP?
Ho una versione ASP che funziona perfettamente con lo stesso URL e dati. Penso che sia solo una cosa PHP/Curl.
Al momento ho il seguente codice (i dati CURLOPT_POSTFIELDS
è un sapone stringa busta valido):
$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';
}
Quindi tutte le idee per cui esso diventa subito errori per tutto il tempo?
La versione ASP funziona perfettamente! Il codice è:
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>')
Non ho mai avuto una risposta che funzionasse per me, e questo era più di 2 anni fa.Le persone sembrano trovare utile questa risposta, quindi la contrassegnerò come risposta.Grazie –
Qualcuno può aiutarmi con il vizio versa di questo trasformare la richiesta di arricciatura come sopra in una richiesta soapclient? – mahen3d