GuzzleHttp怎么获取Cookies
用浏览器和postman都可以获取到三个set-cookie,可是用guzzlehttp只能获取两个。
下图是postman获取的:
这三个cookie的区别是:token2
和csrf2
的domain
是相同的,为api.test.com
,第三个的ak_bmsc
或者bm_sv
的domain
是不同的,为test.com
然后我用GuzzleHttp来获取,我的请求地址为api.test.com
,但是只能获取到token2
和csrf2
不能获取到第三个domain
为test.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);
结果图:
求问,怎么获取第三个cookie啊?
有没有可能是被服务端区别对待了呢?尝试下,尽可能的还原模拟浏览器的请求,例如,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
等等