0
我請求從一個Web服務頻道列表的客戶端應用程序。是否有可能從Web服務中獲取「響應」並將其存儲在ArrayList中?RESTful Web服務 - 列表
含義,如果我想保存例如頻道的列表,它通常會從Web服務來作爲響應,通常由ResponseBuilder。
我想將其存儲在一個ArrayList從客戶端,像列表。
我怎麼會去這樣做呢?
我請求從一個Web服務頻道列表的客戶端應用程序。是否有可能從Web服務中獲取「響應」並將其存儲在ArrayList中?RESTful Web服務 - 列表
含義,如果我想保存例如頻道的列表,它通常會從Web服務來作爲響應,通常由ResponseBuilder。
我想將其存儲在一個ArrayList從客戶端,像列表。
我怎麼會去這樣做呢?
您可以使用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
罐子在你的依賴,你可以從這裏
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);
我得到這個錯誤時,我嘗試使用你所提議GenericType: RESTEASY003145:無法找到內容鍵入text/plain和類型接口的化MessageBodyReader的java.util.List –
@HaisamTarekElkewidy我編輯我的回答 – fujy
它的工作;感謝您的幫助。不過,我確實有一個問題。 如果我試圖消耗MediaType.TEXT_PLAIN,而不是APPLICATION_JSON,如何可以將代碼稍微改變? –