我试图返回一个需要为每个请求设置标头的json get API调用,我试图将addHeader()参数附加到我的请求但是这似乎不起作用并且每次都返回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();
}
答案 0 :(得分:0)
使用addHeader()方法似乎没有任何问题,我会尝试调试并分析请求以检查您使用的标头和地址是否正确。
HTTP 400表示请求格式错误,如果我不得不猜测我说你正在使用的地址/标题正在设置但不是网络服务器所期望的。
答案 1 :(得分:0)
您的服务器可能需要使用base64编码进行身份验证。您可以在浏览器中测试您的请求。试试 Postman。