第一个问题是关于堆栈溢出,所以请温柔一点。我一直在练习我的java,我正在试用apache的http客户机。当连接到xbox api时,我的状态码是200。这对我来说意味着我将密钥正确地传递给了头,现在我应该能够从不同的端点提取我的配置文件。
我的问题是response.getentity()之后我接下来要调用什么?我一直在尝试将数据打印到控制台,以确保我得到的是我想要的。然而,我不断得到一个空指针异常,我认为这是告诉有什么在身体?最终的结果是将json转换为java对象。任何协助都将不胜感激。谢谢
public static void main(字符串[]args){
HttpResponse response = new BasicHttpResponse(
HttpVersion.HTTP_1_1,
HttpStatus.SC_OK,
"OK");
HttpClient client = HttpClients.custom().build();
HttpUriRequest request = RequestBuilder.get()
.setUri(url)
.setHeader(HttpHeaders.CONTENT_TYPE, "application/json")
.setHeader(HttpHeaders.AUTHORIZATION, apiKey)
.build();
try {
client.execute(request);
System.out.println(response.getStatusLine().getStatusCode());
HttpEntity entity = response.getEntity();
entity.getContent();
} catch (IOException e) {
e.printStackTrace();
}
3条答案
按热度按时间8wigbo561#
是的,401的响应我认为标题设置不正确。我最后更改了标题代码:
.setheader(“x-auth”,apikey)
授权与x-auth不同。我不知道我可以把它当作字符串输入。谢谢你们把我引向正确的方向。
jm2pwxwz2#
我认为您应该尝试发出一个curl命令,看看返回的响应是什么。。。
6tdlim6h3#
方法的签名
所以本质上你应该从被调用的方法得到响应。
只需更改一行代码
这应该填充响应,并在调用任何响应方法之前始终检查null。像这样的