在多卷曲中超时和取消设置1个查询

时间:2014-01-25 12:51:59

标签: php curl

我有php脚本将请求发送到其他服务器。

如果问题彼此相似,我使用多卷曲

try {                                                                
    $result['response'][] = @new SimpleXMLElement($task);               
    $result['request'][] = @new SimpleXMLElement($request);             

} catch (Exception $e) {                                             
    // Showing err
    if ($throwException) {                                              
        throw new Exception('Internal Server Error', 500);            
    }                                                                   
}                                                                    

如果有任何问题,我会显示错误。


我想知道:

1)如何理解是超时错误还是其他什么?

$cmh = curl_multi_init(); // create only one descriptor

如果我发送5个请求,4个就可以了,而1个将是超时()

2)如何在多卷曲中仅取消此一个请求?

谢谢!

1 个答案:

答案 0 :(得分:0)

我推荐这个CURL课程:

http://semlabs.co.uk/journal/object-oriented-curl-class-with-multi-threading

$curl = new CURL();
$curl->retry = 2;
$opts = array( CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true  );
$curl->addSession( 'http://yahoo.com/', $opts );
$curl->addSession( 'http://yahoo.co.uk/', $opts );
$curl->addSession( 'http://yahoo.ru/', $opts );
$result = $curl->exec();
$curl->clear();
foreach( $result as $r )
{
    if( $r['info']['http_code'] !== 200 )
        echo $r['url'] . " has failed\n";
}

我可能在foreach中有一些错误。只需print_r($ r ['info']);并且您将获得每个请求的所有详细信息。这也会重试失败的请求($ curl-> retry = 2;)。