2016-02-05 1 views
0

J'utilise Guzzle 6 pour communiquer avec l'API Youtube.
J'ai lu sur les etags dans les docs YoutubeAPI et j'ai essayé de le faire fonctionner pour moi.
D'abord, je l'ai testé sur le terrain de jeu OAuth 2.0 par Google.
Après quelques essais, je l'avais mis en place et le résultat a été suivants:Guzzle 6 retourne 200 au lieu de 304 en utilisant l'en-tête "If-None-Match" et etags

Google OAuth 2.0 Playground and using ETags

Il est revenu avec succès 304 pour cette demande particulière.
Maintenant, j'ai utilisé ce code pour recréer la réponse ci-dessus.

$this->client->get('https://www.googleapis.com/youtube/v3/playlists?part=id,snippet&id=PLQvsw2H5Quochc6RgdIO-zvTKB012BTz1&key=MyApiKey', [ 
    'header' => [ 
     'If-none-match' => "\"DsOZ7qVJA4mxdTxZeNzis6uE6ck/FVDC5fyfcQ3KmIbwFIpgNgWJFUo\"", 
    ] 
]); 

Mais il renvoie toujours une réponse avec un code 200.

200 instead 304 returned

Je ne sais pas beaucoup sur le protocole HTTP et donc je ne sais pas si je manque quelque chose ..
(soit appeler avec Guzzle ou les en-têtes) se

Répondre

1

À première vue, il semble que votre requête ne respecte pas la partie authentification de la requête, en raison du fait que l'image copiée et collée répertorie l'authentification, mais qu'elle ne figure pas dans votre extrait de code. Il est difficile de dire sans pouvoir voir la réponse complète reçue.

Utilisez auth pour activer l'authentification pour la transaction. Utilisez debug pour activer le débogage, cela vous permettra de comparer la demande et les réponses reçues par Guzzle aux attentes.

Vous pouvez également être intéressé par l'utilisation du Official Google PHP Client library. Au fond, cette bibliothèque utilise Guzzle.