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

Laravel 7调用外部API POST请求报错:Response::setContent()参数异常

Laravel 7 POST请求报错:Response::setContent()参数类型错误

错误原因

你遇到的报错是因为直接返回了$response->json()的结果——该方法返回的是stdClass对象,而Symfony的Response::setContent()方法仅接受字符串或null类型的参数,类型不匹配导致报错。

解决方案

1. 用Laravel响应助手包装结果

使用response()->json()函数将API返回的结果序列化为合法的JSON响应字符串,避免直接返回对象:

$response = Http::withOptions(['debug' => true])
    ->asForm()
    ->withToken('mybearertoken')
    ->post('theurl', [
        'tracking' => $getcolisdetails->ref_order,
        'state_id' => $newStatus,
        'content'  => $content
    ]);

// 用response()->json()包装后返回
return response()->json($response->json());

2. (可选)将对象转为数组返回

如果$response->json()返回的是对象,也可以先强制转为数组再包装:

return response()->json((array)$response->json());

3. 检查请求参数类型

另外确认$content变量是字符串类型,因为asForm()发送的是表单数据,若$content是对象可能导致请求异常(Postman测试正常可能是因为手动传入了字符串),可以强制转换:

$content = (string)$content;

内容的提问来源于stack exchange,提问作者MADI

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 22:05:18