当我应该使用 php curl 获取状态 304 时,获取 HTTP 状态 200


Getting HTTP status 200 when I should be getting status 304 using php curl

我正在构建一个应用程序,该应用程序频繁调用外部 api 并缓存发回的数据。 API 还发送"requestnext"URL、上次修改日期和 ETag,可用于对更新进行条件获取调用。 当进行请求下一次调用时,当没有新数据时,我应该收到状态 304,但我只获得状态 200(即使没有新数据)。

我的代码:

$curl = curl_init();
                curl_setopt_array($curl, array(
                    CURLOPT_RETURNTRANSFER => 1,
                    CURLOPT_URL => $nextrequest . '&apiKey='.$apikey,
                    CURLOPT_SSL_VERIFYPEER => false,
                    CURLOPT_HTTPHEADER => array($lastmod, $etag),
                    CURLOPT_HEADER => 1,
                ));
                $response = curl_exec($curl);
                $curlinfo = curl_getinfo($curl);
                // Get http response code
                $httpresponse = $curlinfo['http_code'];

$lastmod和$etag变量包含

$lastmod = If-Modified-Since: Wed, 24 Feb 2016 22:38:22 GMT
$etag = If-None-Match: "ffffffffec3c286a-json"

对我可能做错了什么有什么想法吗?

原来我把条件获取请求发送到了错误的网址。 我应该将其发送到我用于发出请求的原始网址(我将其发送到"下一个请求"网址)。

这是针对美联社选举 api,以防有人想知道!