Je rencontre des problèmes pour envoyer une requête consécutive avec digest auth.Guzzle perdant Digest Auth avec des demandes séquentielles
Seul le premier fonctionne comme prévu, le second lance Exception de requête avec le code de statut 401 (non autorisé), ce qui signifie que guzzle perd des informations d'identification après la première demande.
Suivre de code:
class Alice
{
/**
* @var GuzzleHttpClient
*/
private $httpClient;
public function __construct(GuzzleHttpClient $client)
{
$this->httpClient = $client;
}
public function getAll(array $data)
{
$return = array();
foreach ($data as $uri) {
$return[] = $this->callEndpoint($uri);
}
return $return;
}
private function callEndpoint($uri)
{
$httpClient = $this->httpClient;
$response = $httpClient->get(
'http://foo.net/bar/' . $uri,
$this->requestOptions()
);
return $response->json();
}
private function requestOptions()
{
return array(
'auth' => array(
'user',
'password',
'digest'
),
'headers' => array(
'Accept'=>'application/vnd.foo+json; version=1.0',
),
);
}
}
je résoudre créer une nouvelle instance de httpClient
$httpClient = new $this->httpClient;
Mais je ne chose que c'est la meilleure solution. Puis-je le résoudre sans créer de nouvelle instance?
ce n'est pas possible parce que mon GuzzleHttp \ Client appartient à Service Container. et je pense que ça pourrait marcher sur l'objet de requête, parce que je le réinitialise à chaque requête. il ne peut pas créer un objet Guzzle \ Client uniquement pour atteindre un point de terminaison. – Markomafs
a édité la réponse pour tenir compte de ceci. –
je vais essayer cette solution. – Markomafs