首页 > 解决方案 > 无法使用 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
}

标签: symfonysymfony-http-client

解决方案


您可以使用

$response->getContent(false)

得到响应而不是抛出错误。

代码说明:

    public function getContent(bool $throw = true): string

请注意,您会丢失一些 HttpClient 在这里为您提供的非常有意义的包装功能。


推荐阅读