リモートWebサービスへのデータ呼び出しでcurl POSTを発行するphpスクリプトがあります(同僚のパーソナルコンピューターで実行されています)。ローカルホストからスクリプトを実行すると正常に動作し、期待される結果を返しますが、サーバー (共有、非専用) にスクリプトをアップロードすると、curl エラー 7 (ホストに接続できませんでした) と HTTP ステータス コード 0 で失敗し、それを実行します。
同じスクリプトを使用して yahoo 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);