GuzzleHttp怎么获取Cookies

用浏览器和postman都可以获取到三个set-cookie,可是用guzzlehttp只能获取两个。

GuzzleHttp怎么获取Cookies

下图是postman获取的:

GuzzleHttp怎么获取Cookies

这三个cookie的区别是:token2csrf2domain是相同的,为api.test.com,第三个的ak_bmsc或者bm_svdomain是不同的,为test.com

然后我用GuzzleHttp来获取,我的请求地址为api.test.com,但是只能获取到token2csrf2不能获取到第三个domaintest.com的cookie。

        $http = new Client(['cookies' => true]);

        $response = $http->post('api.test.com', [
            'headers' => [
                'Content-type' => 'application/json',
                'sec-fetch-site' => 'same-origin',
                'sec-fetch-mode' => 'cors',
            ],
            'json' => [
                'username' => $this->username,
                'password' => $this->password,
            ]
        ]);

        $config=$http->getConfig('cookies');

        dd($config);

结果图:

GuzzleHttp怎么获取Cookies

求问,怎么获取第三个cookie啊?

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

有没有可能是被服务端区别对待了呢?尝试下,尽可能的还原模拟浏览器的请求,例如,guzzle设置 User-Agent 为浏览器标识 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36 等等

3年前 评论
吃鱼不吐刺 (楼主) 3年前
忆往昔弹指间 (作者) 3年前
dd($response->getHeaders())
3年前 评论
吃鱼不吐刺 (楼主) 3年前
JerryBool (作者) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!