使用loopj向asynchttpclient添加debounce

vnzz0bqm  于 2021-07-09  发布在  Java
关注(0)|答案(0)|浏览(205)

我有一个从googlebooksapi读取数据的应用程序。
我在图书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循环迭代中都会更改。
我如何才能添加谴责或其他东西,使这段代码不会返回此消息?
谢谢您

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题