使用 loopj

问题描述

我有一个从 Google Books API 读取数据的应用程序。

我对书籍 id 运行 for 循环,对于每个 id,我可以通过 API 获取结果。

据我所知,我将请求发送到 fast 并收到一条错误消息:请求太多,我应该减慢请求的速度。

我使用以下代码获取 API 数据:

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" ),handler );
        } catch (UnsupportedEncodingException ignored) {

        }
    }

}

然后在 recyclerView 适配器内部:

MyBookClient.getInstance().getBooks( BookID,new JsonHttpResponseHandler() {
    @Override
    public void onSuccess(int statusCode,Header[] headers,JSONObject response) {
        if (response != null) {
            final MyBook books = MyBook.fromJson( response );
            tv_Title.setText( books.getTitle() );
            tv_Author.setText( books.getAuthor() );
            Picasso.with( itemView.getContext() ).load( Uri.parse( books.getCoverUrl() ) ).error( R.drawable.ic_nocover ).resize( 110,160 ).into( Iv_BookCover );
        }
    }
} );

BookID 每次 for 循环迭代都会改变。

如何向此代码添加 denounce 或其他内容,使其不会返回此消息?

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)