我正在尝试检索Guzzle 6中GuzzleHttp \ Exception \ ConnectException附带的错误消息。 我读到在旧版本中,这可以通过getResponse()来实现。 但是,该方法现在默认返回null。
这是我的代码:
$responses = Pool::batch($client, $requests($this->list), array(
'concurrency' => 15,
));
foreach ($responses as $event) {
$classname = get_class($event);
$raw = print_r($event,1);
if ($classname == "GuzzleHttp\Exception\ConnectException") {
$response = json_encode((string)$event->getResponse());
}
echo $response;
}
$回复是空的。 但是,$ raw包含以下行:
[0] => GuzzleHttp\Exception\ConnectException Object
(
[request:GuzzleHttp\Exception\RequestException:private] => GuzzleHttp\Psr7\Request Object
(
[method:GuzzleHttp\Psr7\Request:private] => GET
....
)
[response:GuzzleHttp\Exception\RequestException:private] =>
[handlerContext:GuzzleHttp\Exception\RequestException:private] => Array
(
[errno] => 6
[error] => Could not resolve host: mydomain.it
[url] => http://mydomain.it/
[content_type] =>
[http_code] => 0
....
如何检索“无法解析主机:mydomain.it”消息? 我发现的只是“你需要抓住错误”。但是当我使用Pool :: batch并且所有内容已经在我的响应数组中时呢?
答案 0 :(得分:0)
使用$event->getMessage()
(异常消息)代替$event->getResponse()
,因为没有连接,所以没有响应