我正在使用https://github.com/rmccue/Requests
我使用随机代理发出请求有时代理会工作,有时它会失败:有不同的错误:
Uncaught exception 'Requests_Exception' with message 'cURL error 28: connect() timed out!'
我的问题是:如何捕获此CURL错误,并在循环中尝试另一个代理?
我试过var_dump($request->status_code);
无论成功还是失败都输出200。
include('../library/Requests.php');
// Next, make sure Requests can load internal classes
Requests::register_autoloader();
// Now let's make a request via a proxy.
$options = array(
'proxy' => '$randomProxyIP:$randomProxyPort')
);
$request = Requests::get('http://httpbin.org/ip', array(), $options );
var_dump($request->status_code);
答案 0 :(得分:2)
在documentation中,您可以找到很多例外情况。此外,您的消息意味着您要捕获异常Requests_Exception
。所有这些都是来自Requests_Exception
(here)的子条款,所以在基本方面你应该:
try {
$request = Requests::get('http://httpbin.org/ip', array(), $options );
} catch (Requests_Exception $e) {
//something goes wrong
}
答案 1 :(得分:1)
try {
$request = Requests::get('http://httpbin.org/ip', array(), $options );
} catch (Exception $e) {
var_dump($e->getMessage());
}