使用cURL訪問文件時,忽略了所述文件中的設置標題。當我通過瀏覽器直接訪問相同的文件而沒有cURL時,它的作品和標題設置正確。任何人都知道這是爲什麼,我如何繞過這個?PHP - 使用cURL時未設置標題
我正在編寫一個API,需要在Web服務中設置HTTP標頭響應,而不是在通過cURL連接到文件的文件中。希望這是有道理的。
非常感謝提前。
使用cURL訪問文件時,忽略了所述文件中的設置標題。當我通過瀏覽器直接訪問相同的文件而沒有cURL時,它的作品和標題設置正確。任何人都知道這是爲什麼,我如何繞過這個?PHP - 使用cURL時未設置標題
我正在編寫一個API,需要在Web服務中設置HTTP標頭響應,而不是在通過cURL連接到文件的文件中。希望這是有道理的。
非常感謝提前。
我變薄會幫你
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,"URL");
curl_setopt($ch,CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($ch,CURLOPT_HTTPHEADER, array('newVar:newValue','Content-type: text/plain', 'Content-length: 100'));
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
//execute post
ob_clean();
$result = curl_exec($ch);
echo $result;
curl_close($ch);
curl_setopt($ch, CURLOPT_HEADER, <true or false>);
可以幫助你。
或者,如果想確切地給出一個HTTP頭,
curl_setopt($ch, CURLOPT_HTTPHEADER,array(<header parameters>));
將是一個解決方案。
我需要能夠在用戶進行cURL連接後設置標頭參數,如果有意義的話。所以這個woulode不起作用。或者我誤解了? – LeeTee
當您使用捲曲,試試這個作爲你的用戶代理
curl_setopt($c_link, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)");
或
curl_setopt($c_link, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
您也可以複製從Firefox頭這可能是這樣的
$header = "Accept: text/xml,application/xml,application/xhtml+xml,";
$header = "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$header = "Cache-Control: max-age=0";
$header = "Connection: keep-alive";
$header = "Keep-Alive: 300";
$header = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header = "Accept-Language: en-us,en;q=0.5";
$header = "Pragma: ";
再次,我需要將標題設置遠離cURL設置。 API的用戶將使用cURL訪問資源,並且我的Web服務需要能夠設置不同的HTTP響應。我不明白firefox的標題如何提供幫助,請詳細說明。謝謝 – LeeTee
請出示你的代碼 – user973254
這是一個很大的代碼很大的項目。我基本上有一個API的每個資源的controller.php文件。在controller.php中,取決於用戶通過cURL發送給API的請求,將會是各種HTTP響應。例如。頭('HTTP/1.1 200 OK');或標頭('HTTP/1.1 401 Unauthorized');但是,通過cURL訪問controller.php時會忽略它們。如果我使用瀏覽器直接訪問controller.php,它就可以工作。 – LeeTee