Tôi đang cố gắng tìm cách tìm kiếm sách theo ISBN bằng API Google Sách. Tôi cần viết chương trình tìm kiếm ISBN rồi in ra tiêu đề, tác giả và ấn bản. Tôi đã thử sử dụng List volumesList = books.volumes.list("");
nhưng điều đó không cho phép tôi tìm kiếm theo ISBN và tôi không thấy cách nào để lấy thông tin mình cần (khi ISBN được đặt trong đó không có kết quả). Những gì tôi có ngay bây giờ là:Tìm kiếm API sách của Google theo 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());
}
Nếu có bất kỳ đề xuất nào về cách làm cho điều này hiệu quả hơn, hãy cho tôi biết. Mã mới:
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());
}
Cách bạn đề xuất là dành cho HTML chứ không phải java. Cách BooksSample thực hiện nó giống như tôi đã nói ở trên và không cho phép tìm kiếm theo ISBN.List volumesList = books.volumes.list (truy vấn) là mã họ sử dụng cũng là truy vấn là một chuỗi. –
Truy vấn sử dụng yêu cầu HTTP GET và nhận phản hồi ở định dạng JSON, không độc lập về ngôn ngữ và thường được sử dụng trong Java. Không có HTML liên quan. – Chris
xin lưu ý: https://www.googleapis.com/books/v1/volumes?q=isbn0735619670 trả lại "totalItems": 78 colon fwd! không thể tin rằng đó không phải là tài liệu ở đâu đó (atleast tôi đã không tìm thấy nó) https://www.googleapis.com/books/v1/volumes?q=isbn <0735619670> trả về "totalItems": 511 nhưng https: //www.googleapis.com/books/v1/volumes?q=isbn:0735619670 thực hiện tìm kiếm chính xác và trả về "totalItems": 1. FWD Đại tá! Không thể tin rằng đó không phải là tài liệu ở đâu đó (atleast tôi đã không tìm thấy nó) – masi