首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在HTTP get请求中发送授权密钥?

如何在HTTP get请求中发送授权密钥?
EN

Stack Overflow用户
提问于 2019-04-10 02:28:53
回答 1查看 173关注 0票数 1

我正在尝试向REST API发送一个HTTP请求,这需要一个授权密钥。我的代码适用于不需要授权的REST API,但是对于这个,我只得到了错误403。我需要帮助

.setRequestProperty("Authorization",密钥)不起作用。我试着用“持有者”+发送我的钥匙,但还是没有结果。

接口如下:https://developer.clashroyale.com/#/getting-started

代码语言:javascript
复制
        import java.io.BufferedReader;
        import java.io.IOException;
        import java.io.InputStreamReader;
        import java.net.HttpURLConnection;
        import java.net.MalformedURLException;
        import java.net.URL;

        public class Json {

            public static void main(String[] args) {

                try {

                    String key;
                    URL url = new URL("https://api.clashroyale.com/v1/players/%23PPCY9Y2J/upcomingchests");
                    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                    conn.setRequestMethod("GET");
                    conn.setRequestProperty("Accept", "application/json");
                    conn.setRequestProperty("Content-Type", "application/json");
                    conn.setRequestProperty("Authorization", key); 
                    if (conn.getResponseCode() != 200) {
                        throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode());
                    }

                    BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));

                    String output;
                    System.out.println("Output from Server .... \n");
                    while ((output = br.readLine()) != null) {
                        System.out.println(output);
                    }

                    conn.disconnect();

                } catch (MalformedURLException e) {

                    e.printStackTrace();

                } catch (IOException e) {

                    e.printStackTrace();

                }

            }

        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-10 03:31:33

当您转到https://developer.clashroyale.com/#/documentation中的文档并选择“试用”一个请求时,它会显示一个使用curl的示例请求。例如:

curl -X GET --header 'Accept:/json‘--header“授权:承载(令牌)”'https://api.clashroyale.com/v1/locations?limit=5

在这里,你可以看到"Authorization“全是小写的,并且你需要在你的key之前加上"Bearer”。

因此,请更改此行:

代码语言:javascript
复制
  conn.setRequestProperty("Authorization", key); 

适用于:

代码语言:javascript
复制
  conn.setRequestProperty("authorization", "Bearer " + key); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55599090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档