【问题标题】:Cannot retrieve error message using Symfony HttpClient无法使用 Symfony HttpClient 检索错误消息
【发布时间】:2019-10-08 14:12:28
【问题描述】:

我使用 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
}

【问题讨论】:

    标签: symfony symfony-http-client


    【解决方案1】:

    你可以使用

    $response->getContent(false)
    

    获取响应而不是抛出错误。

    代码解释:

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

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

    【讨论】:

    • 能否请您澄清一下 ypu 在这里指的是哪些有意义的包装功能?谢谢
    • 检查doc 中的响应可以做什么。如果您只是期望一个字符串,则不需要任何特殊内容,但请查看 exception handling
    猜你喜欢
    • 1970-01-01
    • 2013-03-22
    • 2021-10-10
    • 1970-01-01
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 2020-03-24
    • 2018-01-03
    相关资源
    最近更新 更多