RESTFUL Web 服务 - 列表
RESTFUL Web Service - List
我有一个客户端应用程序从 Web 服务请求频道列表。是否可以从 Web 服务中获取 "response" 并将其存储在 ArrayList 中?
意思是如果我想存储一个频道列表,例如,它通常来自 Web 服务作为响应,通常来自 ResponseBuilder。
我想将它存储在客户端的 ArrayList 中,例如 List。
我该怎么做?
您可以使用 TypeReference 实例化您的 Channel
对象列表,这是一个示例:
import com.fasterxml.jackson.core.type.TypeReference;
public class ChannelClient {
public void getChannels() {
Response serviceResponse = client.target("http://your_service_url/channels/").
request(MediaType.APPLICATION_JSON).get(Response.class);
String responseString = serviceResponse.readEntity(String.class);
List<Channel> list = new ObjectMapper().readerFor(new TypeReference<List<Channel>>() {
}).readValue(responseString);
}
}
确保你的依赖中有 Jersey JSON Jackson
jar,你可以从这里获取它
https://mvnrepository.com/artifact/org.glassfish.jersey.media/jersey-media-json-jackson/2.26-b07
编辑:如果您想使用 MediaType.TEXT_PLAIN
响应,您只需将请求方法参数更改为您指定的类型,如下所示:
Response serviceResponse = client.target("http://your_service_url/channels/").
request(MediaType.TEXT_PLAIN).get(Response.class);
我有一个客户端应用程序从 Web 服务请求频道列表。是否可以从 Web 服务中获取 "response" 并将其存储在 ArrayList 中?
意思是如果我想存储一个频道列表,例如,它通常来自 Web 服务作为响应,通常来自 ResponseBuilder。
我想将它存储在客户端的 ArrayList 中,例如 List。
我该怎么做?
您可以使用 TypeReference 实例化您的 Channel
对象列表,这是一个示例:
import com.fasterxml.jackson.core.type.TypeReference;
public class ChannelClient {
public void getChannels() {
Response serviceResponse = client.target("http://your_service_url/channels/").
request(MediaType.APPLICATION_JSON).get(Response.class);
String responseString = serviceResponse.readEntity(String.class);
List<Channel> list = new ObjectMapper().readerFor(new TypeReference<List<Channel>>() {
}).readValue(responseString);
}
}
确保你的依赖中有 Jersey JSON Jackson
jar,你可以从这里获取它
https://mvnrepository.com/artifact/org.glassfish.jersey.media/jersey-media-json-jackson/2.26-b07
编辑:如果您想使用 MediaType.TEXT_PLAIN
响应,您只需将请求方法参数更改为您指定的类型,如下所示:
Response serviceResponse = client.target("http://your_service_url/channels/").
request(MediaType.TEXT_PLAIN).get(Response.class);