symfony - 无法使用 Symfony HttpClient 检索错误消息
问题描述
我使用 Symfony HttpClient 调用外部 api。当 statusCode 为 200 时,我可以使用getContent()
方法来检索 API 响应。如果 API 响应为 400,则抛出 ClientException 并且我无法获取外部 API 消息。
$httpClient = HttpClient::create();
$response = $httpClient->request($method, $url);
if (200 !== $response->getStatusCode()) {
$apiResponse['statusCode'] = $response->getStatusCode();
$httpInfo = $response->getInfo();
$content = $response->getContent(); //this throws ClientException
}
解决方案
您可以使用
$response->getContent(false)
得到响应而不是抛出错误。
代码说明:
public function getContent(bool $throw = true): string
请注意,您会丢失一些 HttpClient 在这里为您提供的非常有意义的包装功能。
推荐阅读
- javascript - 通过 Javascript 向 Json 添加数据
- javascript - DataTable 库未在表上建立
- jupyter-notebook - Anaconda 不会更改 Jupyter 的环境,必须重新启动。(赢 10)
- ruby-on-rails - 如何使用 Ruby on Rails 处理数据库可伸缩性
- r - 在 purrr::map 中重新创建小标题
- javascript - 在网络应用程序中使用 Firebase Firestore,我可以排除某些字段被返回吗?
- python - 我可以在 Python 中查看词法分析器和解析器的中间结果吗?
- spring - 读写头休息控制器
- asp.net-core - Aspnet core 3 -- 如何从控制器返回作为字符串生成器创建的文本或 csv 文件?
- sql - 在另一个表 SQL 上选择多个匹配项