通过ISBN搜索Google图书API

我正在尝试找出如何使用Google Books

API通过ISBN搜索书籍。我需要编写一个程序来搜索ISBN,然后打印出标题,作者和版本。我尝试使用,List volumesList =

books.volumes.list("");但是这不允许我按ISBN进行搜索,而且我没有找到获取所需信息的方法(将ISBN放入其中时没有结果)。我现在所拥有的是:

    JsonFactory jsonFactory = new JacksonFactory();     

final Books books = new Books(new NetHttpTransport(), jsonFactory);

List volumesList = books.volumes.list("9780262140874");

volumesList.setMaxResults((long) 2);

volumesList.setFilter("ebooks");

try

{

Volumes volumes = volumesList.execute();

for (Volume volume : volumes.getItems())

{

VolumeVolumeInfo volumeInfomation = volume.getVolumeInfo();

System.out.println("Title: " + volumeInfomation.getTitle());

System.out.println("Id: " + volume.getId());

System.out.println("Authors: " + volumeInfomation.getAuthors());

System.out.println("date published: " + volumeInfomation.getPublishedDate());

System.out.println();

}

} catch (Exception ex) {

// TODO Auto-generated catch block

System.out.println("didnt wrork "+ex.toString());

}

如果有人对如何提高效率有任何建议,请告诉我。新代码:

    String titleBook="";

////////////////////////////////////////////////

try

{

BooksService booksService = new BooksService("UAH");

String isbn = "9780262140874";

URL url = new URL("http://www.google.com/books/feeds/volumes/?q=ISBN%3C" + isbn + "%3E");

VolumeQuery volumeQuery = new VolumeQuery(url);

VolumeFeed volumeFeed = booksService.query(volumeQuery, VolumeFeed.class);

VolumeEntry bookInfo=volumeFeed.getEntries().get(0);

System.out.println("Title: " + bookInfo.getTitles().get(0));

System.out.println("Id: " + bookInfo.getId());

System.out.println("Authors: " + bookInfo.getAuthors());

System.out.println("Version: " + bookInfo.getVersionId());

System.out.println("Description: "+bookInfo.getDescriptions()+"\n");

titleBook= bookInfo.getTitles().get(0).toString();

titleBook=(String) titleBook.subSequence(titleBook.indexOf("="), titleBook.length()-1);

}catch(Exception ex){System.out.println(ex.getMessage());}

/////////////////////////////////////////////////

JsonFactory jsonFactory = new JacksonFactory();

final Books books = new Books(new NetHttpTransport(), jsonFactory);

List volumesList = books.volumes.list(titleBook);

try

{

Volumes volumes = volumesList.execute();

Volume bookInfomation= volumes.getItems().get(0);

VolumeVolumeInfo volumeInfomation = bookInfomation.getVolumeInfo();

System.out.println("Title: " + volumeInfomation.getTitle());

System.out.println("Id: " + bookInfomation.getId());

System.out.println("Authors: " + volumeInfomation.getAuthors());

System.out.println("date published: " + volumeInfomation.getPublishedDate());

System.out.println();

} catch (Exception ex) {

System.out.println("didnt wrork "+ex.toString());

}

回答:

您是否正在使用不赞成使用的数据API?

借助Books API

v1(来自Labs),您可以使用查询

https://www.googleapis.com/books/v1/volumes?q=isbn:<your_isbn_here>

例如

https://www.googleapis.com/books/v1/volumes?q=isbn:0735619670

通过其ISBN查询一本书。

您可能需要查看Google的示例代码:BooksSample.java

以上是 通过ISBN搜索Google图书API 的全部内容, 来源链接: utcz.com/qa/398654.html

回到顶部