我有一个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。