У меня есть следующий код:
private static final String Tag = "DataUtil";
static List<Film> generateFilms(){
Log.i(Tag, "In generate films");
List <Film> films = new ArrayList<>();
String BaseUrl = "http://www.omdbapi.com/?apikey=956febbc&";
Retrofit.Builder builder = new Retrofit.Builder().baseUrl(BaseUrl)
.addConverterFactory(GsonConverterFactory.create());
OkHttpClient.Builder httpClient = new OkHttpClient.Builder()
.connectTimeout(10, TimeUnit.SECONDS)
.writeTimeout(10, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS);
Retrofit retrofit = builder.build();
APIService apiService = retrofit.create(APIService.class);
final Call<List<Film>> filmsCall = apiService.getFilms();
filmsCall.enqueue(new Callback<List<Film>>() {
@Override
public void onResponse(Call<List<Film>> call, Response<List<Film>> response) {
if (response.isSuccessful()){
Log.i(Tag, response.body().get(0).getTitle());
}
else {
Log.i(Tag, "Response code: "+response.code());
}
}
@Override
public void onFailure(Call<List<Film>> call, Throwable t) {
Log.i(getClass().getSimpleName(), "Error: "+t);
}
});
return films;
}
Этот код должен получить данные формы этого сайта. Вот интерфейс, который используется для получения данных (таким образом, я получаю информацию о фильме Бэтмена):
public interface APIService {
@GET("t=batman")
Call<List<Film>> getFilms();
}
Строка Log.i(Tag, response.body().get(0).getTitle())
не добавляет никаких строк в логгер => в ответе нет данных. В то же время строки Log.i(Tag, "Response code: "+response.code()); и Log.i(getClass().getSimpleName(), "Error: "+t)
тоже ничего не добавляют. Так в чем же дело?
UPD
Когда я добавил Interceptor, я обнаружил следующую строку в logcat:
I/: Error: java.net.UnknownServiceException: CLEARTEXT communication to www.omdbapi.com not permitted by network security policy