簡體   English   中英

當我應該使用php curl獲得狀態304時獲得HTTP狀態200

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

我正在構建一個應用程序,該應用程序經常調用外部api,並緩存發送回的數據。 該api還發送“ requestnext” URL,上次修改日期和ETag,可用於進行有條件的get調用以進行更新。 當進行requestnext呼叫時,當沒有新數據時,我應該收到狀態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"

對我可能做錯的任何想法?

原來我正在將條件獲取請求發送到錯誤的URL。 我應該一直將其發送到我用於發出請求的原始URL(而是將其發送到“ nextrequest” URL)。

這是給AP選舉api的,以防有人懷疑!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM