Не удается получить данные с сервера с модернизацией - PullRequest
1 голос
/ 31 марта 2019

У меня есть следующий код:

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

1 Ответ

1 голос
/ 01 апреля 2019
String BaseUrl = "http://www.omdbapi.com";

запрос на использование

@GET(".")
Call<Film> getFilms(@Query("apikey") String apikey, @Query("t") String t);

запрос данных apiService.getFilms("956febbc", "batman")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...