Ho una webapp PHP che effettua richieste ad un'altra API PHP. Uso Guzzle per effettuare le richieste http, passando l'array $_COOKIES
a $options['cookies']
. Lo faccio perché l'API usa la stessa sessione di Laravel come applicazione di frontend. Recentemente ho aggiornato a Guzzle 6 e non posso più passare $_COOKIES
allo $options['cookies']
(ricevo un errore relativo alla necessità di assegnare uno CookieJar
). La mia domanda è: come posso consegnare i cookie che ho presente nel browser all'istanza del mio client Guzzle 6 in modo che siano inclusi nella richiesta alla mia API?Trasferimento di cookie dal browser al client Guzzle 6
6
A
risposta
5
Prova qualcosa di simile:
/**
* 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]);
ed ecco come farli di nuovo:
$newCookies = $guzzleResponse->getHeader('set-cookie');
Speranza che aiuta!
Problemi correlati
- 1. PHP: Guzzle 6 + Guzzle-cache-middleware
- 2. Guzzle 6 avanzamento download
- 3. Elimina cookie dal browser?
- 4. Guzzle 6, ottieni la stringa di richiesta
- 5. rimuovere i cookie dal browser
- 6. Errore irreversibile: chiamata al metodo non definito GuzzleHttp \ Client :: request() con Guzzle 6
- 7. Carica file utilizzando Guzzle 6 all'endpoint API
- 8. Cookie solo client - cookie che non vanno mai al server
- 9. Trasferimento di molti oggetti con ID guida al client
- 10. Dati di ricaricamento efficienti/trasferimento dei dati dal server al client
- 11. Come faccio a profilare le richieste di Guzzle 6?
- 12. Passa cookie al browser tramite Intent
- 13. Recupera l'intero corpo della risposta XML con il client HTTP di Guzzle 6
- 14. Modo corretto per inviare (POST) xml con guzzle 6
- 15. Come registrare tutte le chiamate API usando Guzzle 6
- 16. Come si fa un'app nativa al trasferimento del browser Web?
- 17. Elimina cookie e cache dal browser Web interno di Eclipse
- 18. Invia notifica al browser del client
- 19. PHP: stream pdf remoto al browser client
- 20. Guzzlehttp - Come ottenere il corpo di una risposta da Guzzle 6?
- 21. Come ottenere i cookie dal browser Web con Python?
- 22. Trasferimento dal repository locale al telecomando ospitato da GitHub
- 23. Client WebDAV Windows con trasferimento streaming/Chunked
- 24. Invio videocamera dal browser al server
- 25. L'URL del documento HTML è stato scaricato dal browser client?
- 26. Guzzle problema parametro postale
- 27. base_uri non essendo basato sull'istanza del client guzzle
- 28. Caricamento dal browser client a Google Cloud Storage tramite JavaScript
- 29. Set proxy in Guzzle
- 30. Cookie non impostati in Safari 6