PHP的捲曲似乎並不包括這樣做的請求時,主機頭:PHP捲曲不包括主機http頭
<?php
$handle = curl_init('http://example.com/');
curl_setopt_array($handle, array(
CURLOPT_USERAGENT => 'test ua',
CURLOPT_REFERER => 'http://example.org/',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_PROXY => '127.0.0.1:8080',
CURLOPT_PROXYTYPE => CURLPROXY_HTTP,
//Doesn't work if you specify it manually or leave it out:
CURLOPT_HTTPHEADER => array(
'Host: example.com'
)
));
print_r(curl_getinfo($handle));
echo curl_exec($handle);
?>
你怎麼知道它不包括主機頭?它始終會是因爲它是HTTP 1.1的一個要求,是什麼讓你認爲它沒有這樣做? – DaveRandom
@DaveRandom我正在使用Charles Web調試代理,我可以看到它不包含在那裏。 – Tyilo
這很奇怪 - 它使用HTTP/1.0嗎?嘗試迫使cURL使用HTTP/1.1並使用'CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1',即使它目前顯示爲1.1,我會建議嘗試此操作。 PHP/libcurl版本? – DaveRandom