我有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)如何在多卷曲中仅取消此一个请求?
谢谢!
答案 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;)。