2016-08-19 20 views
1

當我瀏覽到Firefox的一個頁面,點擊下載鏈接,下面的標題所示,當我檢查網絡檢查請求的捲曲請求:如何使產生相同的響應頭火狐

 
Connection: keep-alive 
Content-Disposition: attachment; filename="example_file.mp3" 
Content-Length: 35181829 
Content-Transfer-Encoding: binary 
Content-Type: audio/mpeg 
Date: Fri, 19 Aug 2016 18:19:02 GMT 
Keep-Alive: timeout=60 
Server: nginx 
X-Powered-By: PHP/5.4.45 

然而,當我使用捲曲訪問相同的地址,我得到這樣的:

 
Connection: keep-alive 
Content-Length: 1918 
Content-Type: text/html; charset=UTF-8 
Date: Fri, 19 Aug 2016 20:46:23 GMT 
Keep-Alive: timeout=60 
Server: nginx 
X-Powered-By: PHP/5.4.45 

我怎麼能形成捲曲的請求,讓我像Firefox一樣的反應?

+1

curl無法在響應中強制標題。這些由生成響應的任何東西產生。如果你想讓curl的行爲與FF相同,那麼curl必須發送與FF完全相同的東西。 –

回答

0
  1. 在Firefox中,打開開發人員選項(F12)中的Net選項卡,然後打開所需頁面的URL。
  2. 。注意到發送到服務器的請求中的所有請求頭:

實施例:

Accept 
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Encoding 
gzip, deflate 
Accept-Language 
nl,en-US;q=0.7,en;q=0.3 
Connection 
keep-alive 
Cookie 
_ga=GA1.2.598213448.1471644637; _gat=1 
Host  
mariannesdelights.be 
User-Agent 
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0 
  • 把所有的標頭中以陣列這樣
  • $headers = array('HeaderName:HeaderValue','HeaderName2:HeaderValue2');

  • 使用PHP函數curl_setoption()來設置的標頭中的請求:
  • curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);

    這應該產生完全相同的HTTP-響應頭。