无法获得来自Api调用的响应,它返回禁止错误

时间:2019-09-03 15:13:50

标签: android json mvvm retrofit retrofit2

我有一个API调用以在recyclerview中显示搜索项。 因此,我正在对API调用使用改造和kotlin协程。 但是网络电话返回了禁止的错误

{protocol=h2, code=403, message=, url=https://www.blibli.com/backend/search/products?&searchTerm=samsung&start=0&itemPerPage=24}

URL是正确的,因为我可以使用凌空库获得响应, 但是我需要得到改造的响应。

这是接口类

接口ApiService {

@GET("products")
suspend fun getItems(@Query("searchTerm") item : String,
                     @Query("start") start : String,
                     @Query("itemPerPage") page : String) : Example

}

class SearchViewModel : ViewModel() {

    fun getItems() : LiveData<Example?> {

        System.out.println("========== activated")
        var response = liveData(Dispatchers.IO) {

            try {
                var items = Api.getRetrofit()?.getItems("samsung", "0","24")
                emit(items)
                System.out.println("========== retrofit $items")
            }catch (ex: Exception){}
            catch (ex: Throwable){}
            catch (ex: HttpRetryException){}
        }
        return response
    }
}
class MainActivity : AppCompatActivity() {

    lateinit var viewModel : SearchViewModel
    var adapter : SearchAdapter? = null

    var otherOffer : OtherOfferings? =null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_search)

        viewModel = ViewModelProviders.of(this).get(SearchViewModel::class.java)

        viewModel.getItems().observe(this, Observer {

            System.out.println("========= ${it}")
        })

    }
}

请帮助我,我不知道我的代码有什么问题,相同的代码可用于其他API。

0 个答案:

没有答案