我想为url xyz.com设置一个请求头这是在php中设置它的正确方法吗?
header('Authorization: AuthSub token="xxxxxx"');
header('location:https://www.google.com/accounts/AuthSubRevokeToken');
我正在尝试为一个调用设置这个URL的标题。但是Authorization: AuthSub报头没有出现在FireFox . NET面板的请求报头部分。用于显示请求。
有什么想法吗?谢谢。
我以前使用curl,但它似乎没有发出任何请求,因为我在FireFox的。NET面板中看不到它。代码如下:
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,"https://www.google.com/accounts/AuthSubRevokeToken");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FAILONERROR, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: AuthSub token="1/xxx"'
));
$result = curl_exec($curl);
curl_close($curl);
echo 'hererer'.$result;exit;
header
设置响应标头,而不是请求标头。(如果您试图在其他地方发送HTTP请求,它将不起作用。)
请注意手册中关于Remember that header() must be called before any actual output is sent, ...
的说明。
在使用header()
之前打开error_reporting(E_ALL);
,看看这是否是您的问题。
标题名称和值需要用一个冒号加一个空格分隔,所以"Header"的位置是错误的,它应该是:
header('Location: https://www.google.com/accounts/AuthSubRevokeToken');
(这种情况也很常见,但不需要)
接下来的header
函数是设置响应头,而不是请求头。所以你基本上用错了工具。
在PHP中,你不能设置请求头,这是客户端(例如浏览器)的一部分,而不是服务器。所以header
在这里看起来是错误的。您使用的是哪个HTTP客户端?
调用,如使用CURL请求另一个页面?header()函数只适用于web-browser<>服务器通信。它不会影响服务器端脚本对其他web服务器的任何请求。为此,你需要修改你正在使用的特定方法,例如curl或streams。
关于curl,请参见CURLOPT_HTTPHEADER
: http://php.net/curl_setopt