所以我想用动态请求进行API调用,但是首先,我创建了“ raw”调用,并进行了硬编码。因此,该地址在网络浏览器中可以正常工作
https://api.themoviedb.org/3/discover/movie?api_key=API_KEY&with_genres=27
这是原始API调用(也可以正常工作)
@GET("3/discover/movie?api_key=API_KEY&with_genres=27") Call<itemList_model> getHorror();
问题是当我尝试使流派变为动态查询时。我收到此错误401,不知道为什么。
@GET("3/discover/movie") Call<itemList_model> test(@Query("API_KEY") String key, @Query("with_genres") String[] id); (there's no difference, if I use the array or not, still getting 401)
改造电话
public void getListViewItems() {
String url = "https://api.themoviedb.org/";
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(url)
.addConverterFactory(GsonConverterFactory.create())
.build();
apiCall api = retrofit.create(apiCall.class);
Call<itemList_model> call = api.test("999ac32d244814bb3415d26876085144", "27");
call.enqueue(new Callback<itemList_model>() {
@Override
public void onResponse(Call<itemList_model> call, Response<itemList_model> response) {
if (!response.isSuccessful()) {
Log.i(TAG, "onResponse: " + response.code());
}
Log.i(TAG, "onResponse: "+response.code());
}
@Override
public void onFailure(Call<itemList_model> call, Throwable t) {
Log.i(TAG, "onFailure: " + t.getMessage());
}
});
}
*错误401:身份验证失败:您无权访问该服务。
答案 0 :(得分:2)
您需要进行如下更改
将API_KEY
更改为api_key
,因为您的网址密钥是api_key
。
@GET("3/discover/movie") Call<itemList_model> test(@Query("api_key") String key, @Query("with_genres") String[] id);