如何阻止curl PHP发送Accept头信息。

25

默认情况下,curl会为所有请求发送Accept: */*头文件。如何停止发送默认头文件?

 Accept: */* 
2个回答

34

通过CURLOPT_HTTPHEADER参数传递"Accept:"头信息(即冒号右侧没有内容的头信息)。例如:

$headers  =  array( "Accept:" );
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

使用 curl 命令行工具的等价命令为:

curl -H 'Accept:' http://example.com/

这将使curl删除头部信息,而不仅仅是发送一个值为空的头部信息。如果你想要发送一个值为空的头部信息,你也可以使用分号代替冒号!


在看到这个问题之前,我偶然发现了一个相关的问题(https://dev59.com/dmct5IYBdhLWcg3wZMfn),想指出的是,`-H 'Accept:'` 确实可以防止 curl 发送头信息。它不会像我最初想的那样发送空头信息。 - aaaaaa

0
请确保您的数组项设置为紧跟标题名称的冒号,就像这样:
array( "Accept: yourAcceptValue" )

不要用空格,像这样:

array( "Accept : yourAcceptValue" )

如果在标题名称和冒号之间有空格,curl 会将默认的 */* 添加到您的标头中。
(适用于 PHP 5.5.9-1ubuntu4.7)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接