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

Guzzle 6 returning 200 instead 304 using "If-None-Match" header and etags

我正在使用 Guzzle 6 与 Youtube 进行交流 API。
我已经在 YoutubeAPI 文档中阅读了有关 etag 的信息,并尝试让它对我有用。
首先,我在 Google.
的 OAuth 2.0 游乐场对其进行了测试 经过几次尝试,我设置好了,结果如下:

它为这个特定请求成功返回了 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\"",
    ]
]);

但它总是 returns 带有 200 代码的响应。

我不太了解 HTTP 协议,因此我不确定我是否遗漏了什么..
(用 Guzzle 或 headers 本身调用)

乍一看,您的请求似乎未通过请求的身份验证部分,因为复制和粘贴的图像列出了身份验证,但它不在您的代码段中。如果不能查看收到的完整回复,很难判断。

使用auth启用交易验证。 使用 debug 启用调试,这将允许您将 Guzzle 收到的请求和响应与预期进行比较。

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