我正在使用Jersey REST客户端来调用Java中的REST API。 我的代码如下所示,
Client client = Client.create();
WebResource webResource = client.resource(http://openlibrary.org/api/books).queryParam("bibkeys", "ISBN:0201558025");
ClientResponse response = webResource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class);
String responseData = response.getEntity(String.class);
System.out.println(response.getStatus());
System.out.println("Response is : " + responseData);
我正在调用互联网上提供的示例API,我的程序返回200状态,但返回的内容为空。即var _OLBookInfo = {};
当我在浏览器中复制并粘贴相同的链接时,我会收到书籍详细信息等数据。即
var _OLBookInfo ={
"ISBN:0201558025":{
"bib_key":"ISBN:0201558025",
"preview":"restricted",
"thumbnail_url":"https://covers.openlibrary.org/b/id/135182-S.jpg",
"preview_url":"https://archive.org/details/concretemathemat00grah_444",
"info_url":"http://openlibrary.org/books/OL1429049M/Concrete_mathematics"
}
};
我的代码有什么问题?
答案 0 :(得分:0)
基于documentation queryParam返回一个新的webResource,而不是修改当前的一个。 将查询参数添加为
WebResource webResource = client.resource("http://openlibrary.org/api/books")
.queryParam("bibkeys", "ISBN:0201558025");
应该解决你的问题。