为什么服务器上缺少Android“授权”标头?

时间:2019-02-12 18:16:00

标签: php android http-headers authorization bearer-token

我正在将一个Android请求发送到Directus服务器API,并使用addRequestProperty()添加“ Authorization”标头,但服务器返回405 FileNotFoundException。

URL url = new URL(serverURL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.addRequestProperty("Authorization", "Bearer " + token);
conn.setReadTimeout(10000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
conn.connect();

从浏览器发送时,具有相同“ Authorization:Bearer [myToken]”标头的请求可以正常工作,并返回一组jSON数据。

我的.htaccess文件如下所示:

RewriteEngine On
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
Setenvif authorization ^(.+)$ auth_head=$1

我还尝试使用此简单的.php脚本遍历标头,但'Authorization'标头从未存在:

$headers = getallheaders();
foreach ($headers as $name => $value) {
    echo $name . '=' . $value . ' | ';
}

似乎“授权”标头某种程度上已从请求中删除/丢失。

我想念什么?我还能尝试什么? 谢谢。

0 个答案:

没有答案