gpt4 book ai didi

java - 在 Android 中使用 httpUrlConnection 发送授权 header

转载 作者:太空狗 更新时间:2023-10-29 13:31:55 28 4
gpt4 key购买 nike

我在使用 HttpUrlConnection 时尝试设置“授权” header ,但我在服务器上看到它是“HTTP_AUTHORIZATION”。

这是我的代码:

public static String doGet(String params, String accessToken)
throws MHNetworkException {
try {
URL url = new URL(getServerUrl());

HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization", "Token token="
+ accessToken);
conn.setRequestMethod("GET");

int httpStatus = conn.getResponseCode();
Log.v(tag, "httpStatus " + httpStatus);

if (httpStatus == 200) {
return MHIOUtil.getInputStreamAsString(conn.getInputStream());
}
} catch (MalformedURLException me) {

} catch (IOException ioe) {

}
}

顺便说一句,“Content-Type” header 也更改为 CONTENT_TYPE。

为什么 Android 发送会更改它,我有什么办法可以完全按照我想要的方式发送它。或者我在这里做错了什么?如果重要的话,我们会在后端使用 nginx 和 Rails。

请不要推荐使用 HttpClient。我只想使用 HttpURLConnection,如果我能让它正常工作,因为 Google 的 Android 开发人员说他们将把所有的努力都放在 HttpURLConnection 上。

谢谢。

最佳答案

没有错。大多数 header 都可以在以 HTTP_ 为前缀的服务器上访问,但 Content-Type 被特殊处理。 Android 没有改变它,映射发生在服务器上。映射到大写字母是标准的(标题的大小写不重要),用“_”替换“-”也是如此。

参见 CGI specification .

关于java - 在 Android 中使用 httpUrlConnection 发送授权 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14718785/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com