我有一个 php 脚本,它发出一个 curl POST,其中包含对远程 Web 服务的数据调用(在我同事的个人计算机上运行)。当我从本地主机运行脚本时,它工作正常并返回预期结果,但是当我将脚本上传到服务器(共享,非专用)时出现 curl 错误 7(无法连接到主机)和 HTTP 状态代码 0 和运行。
我尝试使用相同的脚本向雅虎 API Web 服务调用发出 POST,它可以在服务器和本地主机上运行。
我提到的 Web 服务在我同事 PC 上的端口 8080(不是 80)上运行,我通过他的 IP 地址(静态)访问它。
error_reporting(E_ALL);
$request = 'http://xx.xx.xx.xx:8080/services/dataconsume';
$postargs = json_encode(array(
'x'=> '10',
'y'=> '20'
));;
$session = curl_init($request);
curl_setopt ($session, CURLOPT_POST, true);
curl_setopt ($session, CURLOPT_POSTFIELDS, $postargs);
curl_setopt($session, CURLOPT_HEADER, true);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
curl_setopt($session,CURLOPT_FOLLOWLOCATION,true);
$response = curl_exec($session);
echo "CURL ERROR NO : ".curl_errno($session); //returns 7
echo "<br />CURL STATUS : ".curl_getinfo($session, CURLINFO_HTTP_CODE); //returns 0
echo "<br />CURL ERROR : ".curl_error($session); //returns "couldn't connect to host"
curl_close($session);