PHP apache_request_headers不能很好地工作

时间:2015-03-01 17:51:49

标签: php rest httprequest

你好可能会问这个为什么在我的代码中我执行代码时无法获得头文件['Authorization']?

同时,我开发了一个REST API,可以使用php-json-mysql处理数据库到客户端,所以当我一起使用GET方法时,我还将我的apikey包含在标题中作为'Authorization',但我无法在我的代码中获取它。

这是我的方法:

$headers = apache_request_headers();

if (isset($headers['Authorization'])) {
    //Good
}else {
    //API KEY is missing
}

但是在我的请求标题中它表示

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36
Authorization: API_KEY
Accept: */*
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8

我在chrome上使用Advance REST Client扩展。 谁有人遇到这个?

1 个答案:

答案 0 :(得分:3)

Authorization标题符合specific format

将其用作

Authorization: API_KEY

无效,Web服务器可能完全忽略它。您可能希望使用这样的自定义标头:

X-Authorization: API_KEY

X-Api-Key: API_KEY

自从我使用PHP以来已经有一段时间了,但我认为如果您发送这样的标题,则无法使用apache_request_headers来获取它们,所以您必须以这种方式获得:

$_SERVER['HTTP_X_AUTHORIZATION']

$_SERVER['HTTP_X_API_KEY']