首页 > 解决方案 > 随机处理改造 2 请求

问题描述

我得到一个索引组成列表(102 个股票代码),我想找出有关它们的详细信息,但是在 102 个查询中,执行的查询始终不超过 10 个,并且股票代码是随机选择的。所有请求都通过使用 RxJava3 的改造 2 执行。可能是什么问题呢?这是视图模型代码:

var price: MutableLiveData<CompanyInfoModel> = MutableLiveData()

    fun getCompanyInfoObserver(): MutableLiveData<CompanyInfoModel> {
        return price
    }

    fun makeApiCall(ticker: String) {
        val retrofitInstance = RetrofitYahooFinanceInstance.getRetrofitInstance().create(RetrofitService::class.java)
        retrofitInstance.getCompanyInfo(ticker)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(getCompanyInfoObserverRx())
    }

    private fun getCompanyInfoObserverRx(): Observer<CompanyInfoModel> {
        return object : Observer<CompanyInfoModel> {
            override fun onComplete() {
                // Hide progress bar
            }

            override fun onError(e: Throwable?) {
                price.postValue(null)
            }

            override fun onNext(t: CompanyInfoModel?) {
                price.postValue(t)
            }

            override fun onSubscribe(d: Disposable?) {
                // Show progress bar
            }
        }
    }

这是模型的初始化:

companyInfoModel = ViewModelProvider(this).get(CompanyInfoViewModel::class.java)
        companyInfoModel.getCompanyInfoObserver().observe(this, Observer<CompanyInfoModel> { it ->
            if(it != null) {
                retrieveList(Helper.companyInfoToStock(it))
            }
            else {
                Log.e(TAG, "Error in fetching data")
            }
        })

这是请求方法本身:

fun getCompanyInfo(ticker: String) {
        companyInfoModel.makeApiCall(ticker)
    }

标签: androidkotlinretrofit2rx-java3

解决方案


谢谢你,帕维尔。问题确实出在 API 限制中,我更改了提供程序,一切都开始正常工作。


推荐阅读