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

Laravel项目用GuzzleHttp请求API遇302错误,返回空值求助

Laravel HTTP请求遇302错误的排查与解决

问题排查与修复方案

结合你的代码片段,以下是具体的问题点和解决办法:

1. 修正查询参数传递方式

Laravel的Http facade的get方法第二个参数直接接收关联数组作为URL查询参数,不需要嵌套在query_param键下。原代码的写法会导致参数无法被正确解析,目标API可能因缺少必要参数返回302跳转。

修正后的代码:

$list_receiveItem = Http::withHeaders([
    'Authorization' => 'Bearer ' . $data['access_token'],
    'X-Session-ID' => $xsessionID,
    'Accept' => 'application/json'
])->withOptions([
    'allow_redirects' => false  
])->get($host . '/api/item/list.do', [
    'fields' => 'id,name,no',
    'filter.itemType' => 'INVENTORY'
]);

2. 检查URL拼接正确性

确保$host的格式正确,避免末尾带有斜杠导致拼接出//api/item/list.do这类错误路径。可以使用Laravel的url()辅助函数安全拼接URL:

$endpoint = url($host, '/api/item/list.do');
// 再将$endpoint传入get方法

3. 验证API请求方法

确认目标API的/api/item/list.do端点是否确实支持GET请求。部分系统的列表查询接口可能要求使用POST方法,若用错请求方式会触发302跳转。

4. 排查跳转目标

即使禁用了重定向,你可以通过以下代码获取跳转的目标地址,从中分析具体原因:

dd($list_receiveItem->header('Location'));

跳转地址通常会暴露问题根源,比如权限验证页面、不存在的端点路径等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:50:46