1

私のPHPスクリプトは、http_post_fields()を使用して別のサーバーにPOSTリクエストを送信します。コードの例を次に示します。

$g = http_post_fields("http://mysite.com", $some_array);

スクリプトはときどき機能しますが、次のエラーが発生することがよくあります。

 http_post_fields() [function.http-post-fields]: couldn't resolve host name; name lookup timed out 

関数でさまざまなhttpアドレスを試しましたが、すべてこのエラーが発生します。誰かが私の問題の原因が何であるか知っていますか?

4

2 に答える 2

1

sshアクセスがある場合は、シェルping mysite.comでこのコマンドを試して、応答があるかどうかを確認してください

サーバーからのPOSTリクエストの送信を防ぐために、ファイアウォール/プロキシサーバー構成が存在する可能性があります

これを試して、ドメインがIPに解決されることを確認してください。

<?php
$ip = gethostbyname('www.example.com');

echo $ip;
?>

ステータスコードをエコーするHTTPRequestの例

<?php
$r = new HttpRequest('http://www.example.com/', HttpRequest::METH_POST);
$r->addPostFields(array('param1' => 'value'));

try {
   $http_req->send();
} catch (HttpException $ex) {

}

$response_code = $http_req->getResponseCode();
 echo $response_code;
?>
于 2012-12-13T16:50:36.053 に答える
0

すべての入力 Kasun に感謝します。結局、私はこの PECL ライブラリ (http_post_fields が定義されている場所) に飽きてしまい、代わりに cURL を使用しました。ここでの目標は、あるサーバーから別のサーバーにセキュリティ チケットを要求することです。もちろん、cURL を使用するようになったので、モジュール全体がスムーズに動作します。再度、感謝します。

于 2012-12-14T15:55:30.717 に答える