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 回答