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

Laravel中使用Bearer Token获取数据时遭遇401未认证问题求助

问题解决:Laravel Http客户端Bearer Token请求返回401未认证

核心错误原因

你调用Http::get时,错误地将请求头放在了第二个参数位置——Laravel的get方法第二个参数用于传递URL查询字符串参数,请求头并未被正确发送到目标服务,导致服务端无法识别你的Authorization令牌。

正确代码写法

方式一:使用withHeaders方法(推荐)

Route::get('/getdata', function () {
    $token = 'mybrearere=xxxxxx<example';

    $getdata = Http::withHeaders([
        'Authorization' => 'Bearer ' . $token,
        'Accept' => 'application/json',
    ])->get('http://example/api/posts');

    return $getdata;
});

方式二:将请求头作为第三个参数传递

get方法的第三个参数是请求配置选项,可包含headers:

Route::get('/getdata', function () {
    $token = 'mybrearere=xxxxxx<example';

    $getdata = Http::get('http://example/api/posts', [], [
        'headers' => [
            'Authorization' => 'Bearer ' . $token,
            'Accept' => 'application/json',
        ]
    ]);

    return $getdata;
});

额外验证步骤

  • 确保$token的值和Postman中使用的完全一致,注意替换代码里的HTML转义字符(比如&lt;要改成实际的<符号)
  • 可以通过dump()方法查看请求详情,确认headers是否正确携带:
$response = Http::withHeaders([
    'Authorization' => 'Bearer ' . $token,
    'Accept' => 'application/json',
])->get('http://example/api/posts')->dump();
return $response;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 20:32:42