Guzzle 6使用" If-None-Match"返回200而不是304。标题和etags

时间:2016-02-05 12:43:32

标签: php http guzzle etag

我使用Guzzle 6与Youtube API进行通信 我已经阅读了You​​tubeAPI文档中的etags,并试图让它对我有用。
首先,我在Google的OAuth 2.0 Playground进行了测试 经过几次尝试后,我进行了设置,结果如下:

Google OAuth 2.0 Playground and using ETags

为此特定请求成功返回304 现在,我已使用此代码重新创建上述响应。

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

但它总是返回一个200代码的响应。

200 instead 304 returned

我不太了解HTTP协议,因此我不确定我是否遗漏了某些东西..
(要么使用Guzzle,要么使用标题本身)

1 个答案:

答案 0 :(得分:1)

乍一看,根据复制和粘贴图像列出身份验证但不在您的代码段中的事实,您的请求看起来似乎未通过请求的身份验证部分。如果不能查看收到的完整回复,很难分辨。

使用auth启用事务身份验证。 使用debug启用调试,这样您就可以将Guzzle收到的请求和响应与预期进行比较。

您可能也有兴趣使用Official Google PHP Client library。这个库的核心是Guzzle。