Кувшин печенья Guzzle возвращает куки только с сайта example.com, а не www.example.com. Сайт отправляет оба - PullRequest
0 голосов
/ 17 января 2019

Я использую GuzzleHttp \ Client в моем приложении Laravel. Мне нужно взять куки из списка доменов (вместе с источником). Захват всего остального прекрасно работает. Получение куки работает, вроде.

Веб-сайты возвращают файлы cookie только с базового домена. Поэтому, если я сделаю запрос к https://www.example.com., я получу куки для example.com. Я не получаю куки www.example.com. И удивительное количество сайтов отправляют оба. Когда я проверяю сайты в Chrome, я вижу оба набора файлов cookie.

Как мне получить куки для домена и всех его поддоменов?

Вот часть кода, которая получает куки:

$client = new \GuzzleHttp\Client();
$jar = new \GuzzleHttp\Cookie\CookieJar(false);

$res = $client->request('GET', $website, ['http_errors' => false, 'cookies' => $jar]);
$body = mb_convert_encoding($res->getBody()->getContents(), 'UTF-8', 'UTF-8');
$cookies = '';
$it = $jar->getIterator();
while ($it->valid()) {
    $cookies .= $it->current() . "\r\n";
    $it->next();
}
...