使用cURL访问文件时,它会忽略文件中设置的头信息。如果我直接通过浏览器访问同一文件而不使用cURL,则可以正常工作并正确设置头信息。有人知道为什么会这样,并且如何解决这个问题吗?
我正在编写一个API,需要在Web服务中设置HTTP头响应,而不是在用于通过cURL连接到文件的文件中设置。希望这样说清楚了。
谢谢!
我正在编写一个API,需要在Web服务中设置HTTP头响应,而不是在用于通过cURL连接到文件的文件中设置。希望这样说清楚了。
谢谢!
由于您正在使用CURL,尝试将此作为您的用户代理
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)");
$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_setopt($ch, CURLOPT_HEADER, <true or false>);
这可能会对您有所帮助。
或者,如果想要精确地设置HTTP头,则可以:
curl_setopt($ch, CURLOPT_HTTPHEADER,array(<header parameters>));
这可能是一个解决方案。
我认为这会对你有所帮助
//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);