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。
我正在使用 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。