返回的REST api响应为空

时间:2017-11-12 18:22:52

标签: java rest api jersey

我正在使用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"
   }
};

我的代码有什么问题?

1 个答案:

答案 0 :(得分:0)

基于documentation queryParam返回一个新的webResource,而不是修改当前的一个。 将查询参数添加为

        WebResource webResource = client.resource("http://openlibrary.org/api/books")
            .queryParam("bibkeys", "ISBN:0201558025");

应该解决你的问题。