将 header 添加到 HttpGet 请求

Adding header to HttpGet request

我正在尝试 return json get API 调用,需要为每个请求设置 header,我试图附加 addHeader( ) 参数添加到我的请求中,但这似乎不起作用并且每次都出现 return 400 错误,我是否缺少任何其他参数或应该使用其他参数?任何帮助都会大有帮助,谢谢!

    public String getJSON(String address, String header) {
    StringBuilder builder = new StringBuilder();
    HttpClient client = new DefaultHttpClient();
    HttpGet httpGet = new HttpGet(address);

    if(header != null){

        httpGet.addHeader("Authorization", "Bearer " + header);

    }

    try {
        HttpResponse response = client.execute(httpGet);
        StatusLine statusLine = response.getStatusLine();
        int statusCode = statusLine.getStatusCode();
        if (statusCode == 200) {
            HttpEntity entity = response.getEntity();
            InputStream content = entity.getContent();
            BufferedReader reader = new BufferedReader(new InputStreamReader(content));
            String line;
            while ((line = reader.readLine()) != null) {
                builder.append(line);
            }
        } else {

            errorCode = statusCode;

        }
    } catch (ClientProtocolException e) {
        e.printStackTrace();
        e.getMessage();

    } catch (IOException e) {
        e.printStackTrace();
        e.getMessage();
    }


    return builder.toString();
}

您对 addHeader() 方法的使用似乎没有任何问题,我会尝试调试和分析请求以检查您使用的 header 和地址是否正确。

HTTP 400 表示请求格式错误,如果我不得不猜测,我会说您正在使用的 address/header 正在设置,但不是网络服务器所期望的。

可能您的服务器需要使用 base64 编码进行身份验证。您可以在浏览器中测试您的请求。试试 Postman。