У меня есть вызов API для отображения элемента поиска в recyclerview. Поэтому я использую модифицированные и kotlin-сопрограммы для вызова API. Но сетевой вызов возвращает запрещенную ошибку
{protocol=h2, code=403, message=, url=https://www.blibli.com/backend/search/products?&searchTerm=samsung&start=0&itemPerPage=24}
URL-адрес правильный, потому что я могу получить ответ, используя библиотеку volley, но мне нужно получить ответ от модификации.
Это класс интерфейса
интерфейс 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.