Доброго времени суток господа. Я недавно начал осваисать Retrofit2 в андроид (java).
Вот версия библиотеки
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
Вот сам URL
https://api.themoviedb.org/3/discover/movie?api_ke...
В интерфейсе я его запросил так через гет
public interface IRetrofitInterface {
@GET("movie")
Call<Films> getAllFilms(
@Query("api_key") String api_key,
@Query("language") String language,
@Query("sort_by") String sort_By,
@Query("include_adult") boolean include_adult,
@Query("include_video") boolean include_video,
@Query("page") int page);
}
В MainActivity сделал так
public class MainActivity extends AppCompatActivity {
public static final String BASE_URL = "https://api.themoviedb.org/3/discover/";
public static final String API_KEY = "45454655465465вашключ";
public static final String LANGUAGE = "ru-RU";
public static final String SORT_BY = "popularity.desc";
public static final boolean INCLUDE_ADULT=false;
public static final boolean INCLUDE_VIDEO=false;
public static final int PAGE = 1;
private List<Result> movies = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
parseJson();
}
private void parseJson() {
Retrofit retrofit = new Retrofit.Builder().baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create()).build();
IRetrofitInterface retrofitInterface = retrofit.create(IRetrofitInterface.class);
Call<Films> call;
call = retrofitInterface.getAllFilms(API_KEY,LANGUAGE,SORT_BY,INCLUDE_ADULT,INCLUDE_VIDEO,PAGE);
call.enqueue(new Callback<Films>() {
@Override
public void onResponse(Call<Films> call, Response<Films> response) {
if(response.isSuccessful()&& response.body().getResults() !=null){
if(!movies.isEmpty()){
movies.clear();
}
movies = response.body().getResults();
for (Result movie :movies){
String title = movie.getTitle();
Log.i("title",title);
}
}
}
@Override
public void onFailure(Call<Films> call, Throwable t) {
Log.i("error",t.getMessage());
}
});
}
}
Я понимаю тут нет сингтона в интерфейсе но это не суть. Мне нужно просто проверить работает ли ссылка.
но в лог я получаю вот это
2019-05-22 22:55:43.287 17635-17635/com.example.testretrofit I/error: socket failed: EPERM (Operation not permitted)
В манифесте разрешения уже включены.
<uses-permission android:name="android.permission.INTERNET"/>
Подскажите что делаю не так, инетрен есть все норм. тестю на эмуляторе.