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

如何使用Laravel HTTP客户端发送Cookie?

Laravel HTTP客户端设置Cookie报错的解决方法
  • 优先用Laravel官方封装的withCookies方法,这是最稳妥的方式,不用直接操作Guzzle底层选项:

    use Illuminate\Support\Facades\Http;
    
    $response = Http::withCookies([
        'user_id' => '123',
        'session_token' => 'abcxyz'
    ], 'your-target-domain.com')->get('https://your-target-domain.com/api/data');
    

    注意第二个参数必须和请求的目标域名完全一致,否则Cookie不会被正确携带。

  • 如果一定要通过withOptions用Guzzle的原生方式,必须传入Guzzle的CookieJar实例,不能直接传数组(这也是多数人报错的原因):

    use Illuminate\Support\Facades\Http;
    use GuzzleHttp\Cookie\CookieJar;
    
    // 初始化CookieJar,绑定对应域名
    $cookieJar = CookieJar::fromArray([
        'user_id' => '123',
        'session_token' => 'abcxyz'
    ], 'your-target-domain.com');
    
    // 传入withOptions
    $response = Http::withOptions([
        'cookies' => $cookieJar
    ])->get('https://your-target-domain.com/api/data');
    
  • 额外注意:如果Cookie有特定路径要求,可以在创建CookieJar时手动添加Cookie实例来指定:

    use GuzzleHttp\Cookie\SetCookie;
    
    $cookie = new SetCookie([
        'name' => 'user_id',
        'value' => '123',
        'domain' => 'your-target-domain.com',
        'path' => '/api',
        'expires' => time() + 3600, // 1小时后过期
    ]);
    
    $cookieJar = new CookieJar();
    $cookieJar->setCookie($cookie);
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 08:42:37