0

几周前,我发布了一个应用程序,用于Google Books API显示有关书籍的一些数据。

从那以后,我向 Google 发送了配额请求,以增加配额的数量,他们慷慨地同意了,这件事一切正常。

我发布了我的应用程序的更新,在此更新中,我包含了 API 密钥以使这个更高的配额工作,我一直注意到\一些用户报告我说加载结果变得更糟,我认为它与事实上,所有请求都是从我的应用程序发送的,而不是从每个用户发送的。

我已经读过一些调用的参数quotaUser应该有所帮助,但我不确定这是否是我需要的以及如何实现它。

现在我向 Google 图书发送的请求如下:

public class BookClient {

    private static final String API_BASE_URL = "https://www.googleapis.com/books/v1/";
    private AsyncHttpClient client;

    public static BookClient instance = new BookClient();

    public BookClient() {
        this.client = new AsyncHttpClient();
    }

    public static BookClient getInstance() {
        return instance;
    }

    public void getBooks(final String query, JsonHttpResponseHandler handler) {
        try {
            client.get( API_BASE_URL + "volumes?q=" + URLEncoder.encode( query, "utf-8" ) + "&printType=books&maxResults=20&fields=items/id,items/volumeInfo(title,authors,publisher,description,categories,averageRating)&key=MY_GOOGLE_BOOKS_API_KEY", handler );
        } catch (UnsupportedEncodingException ignored) {

        }
    }

}

public class MyBookClient {

    private static final String API_BASE_URL = "https://www.googleapis.com/books/v1/volumes/";
    private AsyncHttpClient client;

    public static MyBookClient instance = new MyBookClient();

    public MyBookClient() {
        this.client = new AsyncHttpClient();
    }

    public static MyBookClient getInstance() {
        return instance;
    }

    public void getBooks(final String query, JsonHttpResponseHandler handler) {
        try {
            client.get( API_BASE_URL + URLEncoder.encode( query, "utf-8" ) + "?key=MY_GOOGLE_BOOKS_API_KEY", handler );
        } catch (UnsupportedEncodingException ignored) {

        }
    }

}

这应该帮助我解决这个问题吗?如果是的话,有人可以举例说明如何使用它,因为我没有完全理解。

谢谢

4

0 回答 0