私はFlickr APIからデータを取得するためにretrofitを使用しています。それはonResponse()
方法に入ることはありませんがレトロフィットAPIコールをデバッグするにはどうすればよいですか?
public static List<String> getImageIds(int size) {
Call<PhotosList> call = flickrService.getPhotos(apiKey, format, "1");
Log.d("TEMP_TAG", "photo url: " + call.request().url().toString());
photoIds = new ArrayList<String>();
call.enqueue(new Callback<PhotosList>(){
@Override
public void onResponse(Call<PhotosList> call, Response<PhotosList> response) {
Log.d("TEMP_TAG", "it's getting here");
PhotosList photosList = response.body();
List<Photo> photos = photosList.getPhotos().getPhoto();
for(Photo photo : photos) {
Log.d("TEMP_TAG", "adding photo id to list: " + photo.getId());
photoIds.add(photo.getId());
}
}
@Override
public void onFailure(Call<PhotosList> call, Throwable t) {
// TODO: Clean up
Log.d("TEMP_TAG", "photoId: ");
}
});
Log.d("TEMP_TAG", "it's getting here too");
return photoIds;
}
:メソッドは、私はこのようなルックスで通話を作ってるんです。 onResponse()
内の最初のログステートメントは決して印刷されず、onFailure()
のログステートメントも印刷されません。ブラウザでcall.request().url().toString()
によって返されたURLを入力しようとすると正常に動作し、期待されるJSONを取得します。私のenqueue()
メソッドが決して発射されないのはなぜですか?
ありがとうございました!
に従ってください。そのようにして、あなたはあなたが送ったもの、そして元のフォーマットで受け取ったものを見ることができます。 – TooManyEduardos
また、ログ 'Log.d(" TEMP_TAG "、" photo url: "+ call.request()。url()。toString());を削除し、動作しているかどうかを調べる(call.request – TooManyEduardos