[英]cURL ignores CURLOPT_HTTPHEADER
好的,我有一些網站應該解析...首先,我在Firefox中打開調試器並按F12鍵,然后查看“網絡”標簽,然后輸入所需的網站,並讀取第一個根GET請求,例如
Doman => website.com
File => /
我到達那里所有的請求標頭,並將它們手動寫入php數組,然后在代碼中調用
curl_setopt($curl, CURLOPT_HTTPHEADER, $headerArray);
以及其他選項,然后致電
curl_exec();
在Firefox中檢查“網絡”選項卡時,我看到請求標頭可能是默認標頭,並且沒有發送手動寫入數組的特定標頭。 與CURLOPT_COOKIEFILE和CURLOPT_COOKIEJAR類似的問題,cookie只是寫入服務器上的cookie文件,但是實際上,下一個請求中還有另一個cookie,而不是以前保存在cookie文件中。
瀏覽器檢查器中的實際請求標頭:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Cache-Control: max-age=0
Connection: keep-alive
Cookie: _ga=GA1.1.1951751996.1563984714; _gid=GA1.1.1564173251.1563984714; _userGUID=0:jyhg490v:AIQdD2Qpm9rmbla1U93mK2a45CFRe49c; jv_enter_ts_2VumZAPpbr=1563984717382; jv_visits_count_2VumZAPpbr=1; .....
Host: localhost
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0
PHP代碼:
<?php
$headers = ['Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
'Cache-Control: max-age=0',
'Connection: keep-alive',
'Cookie: visid_incap_1987259....,
'Host: website.com',
'TE: Trailers',
'Upgrade-Insecure-Requests: 1',
'User-Agent: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'];
$curl = curl_init("https://www.website.com/");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_COOKIEFILE, dirname(__FILE__)."/cookies.txt");
curl_setopt($curl, CURLOPT_COOKIEJAR, dirname(__FILE__)."/cookies.txt");
echo curl_exec($curl);
?>
您將無法在瀏覽器開發工具中看到標頭發送CURL。 所有請求都在服務器端執行。 標頭已成功發送。 您可以像這樣檢查出來:
curl_setopt($curl, CURLINFO_HEADER_OUT, true);
$sentHeaders = curl_getinfo($curl, CURLINFO_HEADER_OUT);
print_r($sentHeaders);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.