php 如何从Guzzle客户端检索cookie?

zqdjd7g9  于 2022-12-02  发布在  PHP
关注(0)|答案(3)|浏览(244)

在请求发生后,我如何从Guzzle请求/客户端检索cookie?

$client = new Client([
    'base_uri' => 'www.google.com',
]);
$response = $client->request('GET', '/');
tuwxkamq

tuwxkamq1#

我在更新这篇文章。
在Guzzle 8.0版中,getConfig()方法将为@deprecated . Read the docs.
您可以从示例代码中获取Cookie:

$client = new Client([
        'base_uri' => 'YOUR_URI',
    ]);
    
$response = $client->post('PATH');

$headerSetCookies = $response->getHeader('Set-Cookie');

$cookies = [];
foreach ($headerSetCookies as $key => $header) {
    $cookie = SetCookie::fromString($header);
    $cookie->setDomain('YOUR_DOMAIN');

    $cookies[] = $cookie;
}

$cookieJar = new CookieJar(false, $cookies);

对于使用,则:

$client->post('PATH', [
    'cookies' => $cookieJar
]);
8gsdolmq

8gsdolmq2#

您还可以从响应中获得CookieJar,如下所示:

$client = new Client([
    'base_uri' => 'www.google.com',
    'cookies'  => true,
]);
$response = $client->request('GET', '/');
$cookieJar = $response->cookies();
$cookieArray = $cookieJar->->toArray();
brccelvz

brccelvz3#

请阅读文档。您必须使用CookieJar类来处理cookie。

$client = new \GuzzleHttp\Client(['cookies' => true]);
$r = $client->request('GET', 'http://httpbin.org/cookies');

$cookieJar = $client->getConfig('cookies');
$cookieJar->toArray();

相关问题