gpt4 book ai didi

java - 无法获取 HTTP 响应的 JSON

转载 作者:太空宇宙 更新时间:2023-11-04 10:42:33 25 4
gpt4 key购买 nike

我只是想获取 Java 8 中 HTTP GET 请求返回的 JSON。我的代码:

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;

Client client = ClientBuilder.newClient();

Response response = client.target("https://dog.ceo/api/breeds/list/all")
.request()
.header("Content-type", MediaType.APPLICATION_JSON)
.get();

String json_string = EntityUtils.toString(response.getEntity());

最后一行出现错误:

java: incompatible types: java.lang.Object cannot be converted to org.apache.http.HttpEntity

如何简单地从响应中获取 JSON?

我已经尝试过:

    JSONObject jsonObject = client.target("https://dog.ceo/api/breeds/list/all")
.request()
.header("Content-type", MediaType.APPLICATION_JSON)
.get(JSONObject.class);

System.out.println("jsonObject is " + jsonObject);

我收到错误:

javax.ws.rs.client.ResponseProcessingException: org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyReader not found for media type=application/json, type=class org.json.JSONObject, genericType=class org.json.JSONObject.

我也尝试过:

    Response response = client.target("https://dog.ceo/api/breeds/list/all")
.request()
.header("Content-type", MediaType.APPLICATION_JSON)
.get();

System.out.println(response.getEntity().toString());

我得到: org.glassfish.jersey.client.internal.HttpUrlConnector$2@350d3f4d

这么基本的事情——从响应中获取 JSON——怎么会这么困难?

最佳答案

可以尝试使用response.readEntity(String.class)response.readEntity(HttpEntity.class)https://docs.oracle.com/javaee/7/api/javax/ws/rs/core/Response.html#readEntity-java.lang.Class-这应该会给你一个可以使用的类型。

编辑:response.readEntity(String.class) 最终成功了。

关于java - 无法获取 HTTP 响应的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48806580/

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