2

PHP で作成した CURL リクエストに問題があります。問題は、ランダムな時間にタイムアウトが返されることです。私が気づいたのは、カスタムエラーページを追加した後、404 カスタムページは機能しますが、curl を使用すると 408 ページは何も返さないということです。

404 ページの例: http://emailingrestauraweb.com/qweqwe

以下は私のphpコードです:

$strCookie = 'PHPSESSID=' . $this->SessionID;
$curl_log = fopen("curl.txt", 'w');
//Setup connection
$curl = curl_init();
curl_setopt_array($curl,array(
        CURLOPT_URL => $URL,
        CURLOPT_USERAGENT=>$this->UserAgent,
        CURLOPT_POST =>true,
        CURLOPT_POSTFIELDS => http_build_query($arrParams, null, '&'),
        CURLOPT_COOKIE => $strCookie,
        CURLOPT_COOKIESESSION=>1,
        CURLOPT_HEADER => 1,
        CURLOPT_VERBOSE         => 0,           // Logs verbose output to STDERR
        CURLOPT_SSL_VERIFYPEER  => 0,           // Do not verify certificate
        CURLOPT_TIMEOUT => 300,
        CURLOPT_CONNECTTIMEOUT=>260,
        CURLOPT_NOSIGNAL => 1,
        CURLOPT_RETURNTRANSFER=>1
    ));

    //Send request
    $result_json = curl_exec($curl);
    $error_code =curl_getinfo($curl, CURLINFO_HTTP_CODE);
    curl_close($curl);

なぜこれが起こるのかわかりませんが、それもランダムです。

更新 1

2 つの slicehost スライスでスクリプトを実行します。あるスライスから別のスライスへの API へのリクエストを行います。API は、電子メールを送信するための OEMPRO ソフトウェアです。408がタイムアウトを意味することは理解していますが、これはランダムに見え、ほとんどの場合、ブロックのように繰り返されます。これがソフトウェアで使用される可能性があるかどうか疑問に思っています.

この問題は、OEMPRO を実行しているドメインの有効期限が 3 日間ほど切れた後に発生し、その後戻ってきて、この問題が発生しています...

すべての答えをありがとう。

4

2 に答える 2

1

ドメインの有効期限が 3 日間切れているとおっしゃいました。これは DNS 解決の問題である可能性が高いです。24 ~ 48 時間待って、変更があればお知らせください。

于 2012-04-20T11:43:54.613 に答える
0

多くの場合、408 は応答本文を返さない (含んでいない)。サーバーは接続を閉じたいだけで、遅いリクエストにこれ以上悩まされたくありません。

確かに、標準では本体を渡すことができます。保守的に読むと、説明のためにそのエンティティを返す必要がありますが、それに依存しないでください。とにかく何のメッセージもありません。代わりに要求を再試行してください。

于 2012-04-19T22:19:01.933 に答える