首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何处理guzzle请求远程服务器时出现的错误500?

如何处理guzzle请求远程服务器时出现的错误500?
EN

Stack Overflow用户
提问于 2017-02-27 18:55:14
回答 1查看 446关注 0票数 0

我使用以下命令请求webservice服务:

代码语言:javascript
运行
复制
 use GuzzleHttp\Client;
 use GuzzleHttp\Exception\ConnectException;
  try {
  $client = new Client();
  $response = $client->request('GET', $url); //it crashes at this line
  $content = json_decode($response->getBody(), true);

}
catch (ConnectException $e) {
  \Drupal::logger('amu_hal')->error('incorrect_url'.$url);
}

今天,远程服务器返回错误500。

我如何修改我的代码,使其在发生崩溃时不会使我的站点崩溃?

EN

回答 1

Stack Overflow用户

发布于 2017-03-04 01:29:28

我假设您所说的远程服务器是指需要很长时间连接的服务器。您可以指定请求的超时时间。

或者可能服务器返回了错误500,并且在json_decode期间失败?您可以查看请求返回的状态码。

或者甚至可能代码没有通过您指定的行,但是异常ConnectException没有被捕获?尝试使用Exception作为一个通用工具来调试这种情况。

我建议您使用Drupal包装器(它在幕后使用Guzzle ),而不是直接使用Guzzle。

代码语言:javascript
运行
复制
$client = Drupal::httpClient();
$request = $client->get($uri, ['connect_timeout' => 5]);
if ($request->getStatusCode() === 200) {
    echo 'Connection Success';
} else {
   echo sprintf('Error %d occurred', $request->getStatusCode());
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42483950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档