2
私はRetrofit 2とThe Movie Database API 3を使用しているところでアンドロイドAPPを開発しています。私はAPIキーを正しく渡す方法がわからないので、@Headerアノテーション新しいインターセプタをhttpClientに追加しようとしましたが、何も表示されませんでした。Retrofit 2でAPIキーを渡す - Androidスタジオ
私はできる限り多くのことを研究しましたが、何も助けてくれませんでした。ここ は、私はAPIインタフェースのための持っているものである:ここでは
public interface MoviesAPIService {
@GET("discover/movie?api_key={api_key}")
Call<List<MoviesResponse>> movieList(@Header("api_key") String api_key);}
は、私は私の活動(ところでViewPagerでそのフラグメント)に持っているものです。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.movies_fragment, container, false);
movieListView = (ListView) rootView.findViewById(R.id.movieListView);
final OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
OkHttpClient client = httpClient.build();
final Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build();
MoviesAPIService moviesAPIService = retrofit.create(MoviesAPIService.class);
Call<List<MoviesResponse>> call = moviesAPIService.movieList(apiKey);
call.enqueue(new Callback<List<MoviesResponse>>() {
@Override
public void onResponse(Call<List<MoviesResponse>> call, retrofit2.Response<List<MoviesResponse>> response) {
Log.d(TAG, "onResponse: " + response.body());
}
@Override
public void onFailure(Call<List<MoviesResponse>> call, Throwable t) {
}
});
return rootView;
}
私が応じて、さまざまなエラーを得ました私がテストしていた内容に、このコードで、私は現在、これを取得しています:それはので、多分、私は何かが欠けていたAPIに来るとき
URL query string "api_key={api_key}" must not have replace block. For dynamic query parameters use @Query.
私はかなりの初心者です。 ありがとうございました!
削除 'あなたの注釈と@query( "API_KEY")' 'への変更@Header( "API_KEY")'からAPI_KEY = {API_KEY} ''、エラーが提案するように? (動的クエリパラメータは@Query_を使用しています) – maciekjanusz
お手数をおかけしていただきありがとうございます。エラーはありませんが、ログにレスポンス本文が出力されません...続行する方法がわかりません... – user6828332
私はAuthorizationでFirebaseメッセージング用にRetrofit2を使用しています。私の質問を見てみてくださいhttp://stackoverflow.com/questions/42454986/firebase-device-to-device-messaging-using-retrofit-how-do-i-get-message-id – eurosecom