You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何完整显示GuzzleHttp错误信息并移除截断标识?

解决GuzzleHttp错误信息被截断的问题

方法1:从异常对象读取完整响应内容

捕获ServerException后,直接通过异常的响应对象获取完整响应体,绕过默认的截断提示:

try {
    $response = $client->post('http://127.0.0.1:8000/api/api', [
        // 你的请求参数
    ]);
} catch (\GuzzleHttp\Exception\ServerException $e) {
    // 获取完整响应内容
    $fullError = $e->getResponse()->getBody()->getContents();
    // 输出或记录完整错误信息
    var_dump($fullError);
}

方法2:关闭Guzzle自动抛出异常的配置

创建客户端时设置http_errors为false,自行处理响应状态,直接读取完整内容:

$client = new \GuzzleHttp\Client([
    'http_errors' => false,
]);

$response = $client->post('http://127.0.0.1:8000/api/api', [
    // 你的请求参数
]);

// 检查响应状态码,处理错误
if ($response->getStatusCode() >= 400) {
    $fullError = $response->getBody()->getContents();
    var_dump($fullError);
}

方法3:重新格式化异常提示信息

如果需要保留自动抛异常的逻辑,可在捕获时重新拼接完整的错误描述:

catch (\GuzzleHttp\Exception\ServerException $e) {
    $fullMsg = sprintf(
        '请求失败:POST %s 返回 %d 错误,详情:%s',
        $e->getRequest()->getUri(),
        $e->getResponse()->getStatusCode(),
        $e->getResponse()->getBody()->getContents()
    );
    echo $fullMsg;
}

提示:如果响应内容过大,建议将完整错误信息写入日志文件,避免直接输出影响可读性。

内容的提问来源于stack exchange,提问作者X.Jop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 21:01:05