PHP - 使用cURL时未设置标头

时间:2011-10-19 09:37:40

标签: php curl header

使用cURL访问文件时,它忽略了所述文件中的set头。当我在没有cURL的情况下通过浏览器直接访问同一文件时,其工作和标题设置正确。任何人都知道为什么会这样,以及我如何解决这个问题?

我正在编写API并且需要在Web服务中设置HTTP标头响应,而不是在用于通过cURL连接到文件的文件中。希望这是有道理的。

非常感谢提前。

3 个答案:

答案 0 :(得分:1)

curl_setopt($ch, CURLOPT_HEADER, <true or false>);

可以帮到你。

或者如果想要准确地提供http标头,

curl_setopt($ch, CURLOPT_HTTPHEADER,array(<header parameters>));

将是一个解决方案。

答案 1 :(得分:1)

当您使用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)");

你也可以从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: ";

答案 2 :(得分:0)

我会帮助你

//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);