У меня есть PHP webapp, который делает запросы к другому API PHP. Я использую Guzzle для получения http-запросов, передавая массив $_COOKIES
в $options['cookies']
. Я делаю это, потому что API использует тот же сеанс Laravel, что и внешнее приложение. Недавно я обновился до Guzzle 6, и я больше не могу пройти $_COOKIES
до $options['cookies']
(появляется сообщение о необходимости присвоить CookieJar
). Мой вопрос в том, как я могу передать все файлы cookie, которые я присутствую в браузере, на мой экземпляр клиента Guzzle 6, чтобы они были включены в запрос к моему API?Передача файлов cookie из браузера на клиент Guzzle 6
6
A
ответ
5
Попробуйте что-то вроде:
/**
* First parameter is for cookie "strictness"
*/
$cookieJar = new \GuzzleHttp\Cookie\CookieJar(true);
/**
* Read in our cookies. In this case, they are coming from a
* PSR7 compliant ServerRequestInterface such as Slim3
*/
$cookies = $request->getCookieParams();
/**
* Now loop through the cookies adding them to the jar
*/
foreach ($cookies as $cookie) {
$newCookie =\GuzzleHttp\Cookie\SetCookie::fromString($cookie);
/**
* You can also do things such as $newCookie->setSecure(false);
*/
$cookieJar->setCookie($newCookie);
}
/**
* Create a PSR7 guzzle request
*/
$guzzleRequest = new \GuzzleHttp\Psr7\Request(
$request->getMethod(), $url, $headers, $body
);
/**
* Now actually prepare Guzzle - here's where we hand over the
* delicious cookies!
*/
$client = new \GuzzleHttp\Client(['cookies'=>$cookieJar]);
/**
* Now get the response
*/
$guzzleResponse = $client->send($guzzleRequest, ['timeout' => 5]);
и вот как получить их снова:
$newCookies = $guzzleResponse->getHeader('set-cookie');
Надеется, что это помогает!
Смежные вопросы
- 1. Guzzle Поддержание файлов cookie
- 2. Настройка файлов cookie для Guzzle CookieJar
- 3. Guzzle 6: загрузка файлов с данными массива
- 4. Передача файла cookie через клиент python websocket
- 5. Передача файлов cookie python
- 6. PHP: Guzzle 6 + Guzzle-cache-middleware
- 7. Удалить cookie из браузера?
- 8. Guzzle 6 Прогресс загрузки
- 9. Guzzle 6 Запрос POST
- 10. Чтение файлов cookie браузера ... jQuery
- 11. Тестирование Guzzle 6 Скачать Прогресс
- 12. клиент-сервер (передача файлов с сервера на клиент)
- 13. Передача файлов cookie в Image.GetInstance
- 14. Передача файлов cookie в httpwebrequest
- 15. Передача файлов cookie из домена в дополнительный домен
- 16. Guzzle 6 отправить многостраничные данные
- 17. Guzzle 6, получить строку запроса
- 18. Symfony2 Guzzle store cookie для запроса
- 19. использование файлов cookie для определенного браузера.
- 20. Передача файлов cookie через домены в экспресс
- 21. Поддержка файлов cookie OpenSSL
- 22. Передача файлов клиент/сервер с использованием CipherOutputStream
- 23. Передача файлов cookie в Android WebView
- 24. Чтение файлов cookie из браузера по умолчанию в C++
- 25. Удалить HTTP_COOKIE cookie из браузера
- 26. Передача файлов cookie с запросом ajax jquery из другого домена
- 27. Guzzle 6.x/Не получил ожидаемый результат
- 28. Передача файлов cookie из родного входа в webview
- 29. Java: передача файлов клиент/сервер (неполные файлы)
- 30. Клиент WebDAV на основе браузера?