這一直在困擾着我好幾天;我試圖通過Curl發送一個SOAP帖子,但我一直在收到「無法連接到主機」的錯誤,但是,我真的看不到如何。如何通過Curl和PHP發送SOAP XML?
我有一個ASP版本可以在相同的URL和數據下正常工作。我認爲這只是一個PHP /捲曲的東西。
目前,我有以下代碼(CURLOPT_POSTFIELDS
數據是有效的SOAP信封字符串):
$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';
}
因此,任何想法,爲什麼它只是錯誤所有的時間?
ASP版本正常工作!代碼是:
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>')
我從來沒有得到一個適合我的答案,而且這個答案已經在2年前了,人們似乎覺得這個答案很有用,所以我會將其標記爲答案,謝謝。 – 2013-12-11 10:29:10
有人可以幫我解決問題嗎?相反,這即是把上面的curl請求轉到soapclient請求? – mahen3d 2016-09-28 11:46:08