2016-02-25 103 views
1

我正在構建一個應用程序,頻繁調用外部API並緩存發回的數據。 api還會發送「requestnext」url,最後修改日期和ETag,它們可用於進行有條件的獲取更新調用。在進行requestnext調用時,我應該在沒有新數據時收到狀態304,但我只能獲得狀態200(即使沒有新數據)。獲取HTTP狀態200,當我應該獲得狀態304使用PHP curl

我的代碼:

$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" 

什麼,我可能是做錯了任何想法?

+0

你問這個問題誰運行外部API? –

+0

剛與他們聯繫,謝謝!當我們想出來的時候我會進行更新 – NajeemB

回答

0

原來我發送條件獲取請求到錯誤的URL。我應該將它發送到我用來發出請求的原始網址(我將它發送到「nextrequest」網址)。

這是爲AP選舉API如果有人想知道!