По этой ссылке я следовал учебному пособию http://thetechnocafe.com/getting-started-with-retrofit-in-android/, чтобы освежить свои знания о том, как использовать модернизацию.Но когда я получаю ответ, он вызывает onFailure со следующей ошибкой Невозможно разрешить хост "jsonplaceholder.typicode.com": нет адреса, связанного с именем хоста .Я проверил реализацию, и она правильная, я даже проверил ее с почтальоном, и API возвращает правильный ожидаемый JSON.Служба настроена следующим образом:
package cd.acgt.acgtexp.service;
import java.util.concurrent.Executors;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class NetworkService {
private static NetworkService mInstance;
private static final String BASE_URL = "https://jsonplaceholder.typicode.com/";
private Retrofit mRetrofit;
private NetworkService() {
mRetrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.callbackExecutor(Executors.newSingleThreadExecutor())
.addConverterFactory(GsonConverterFactory.create())
.build();
}
public static NetworkService getInstance() {
if (mInstance == null) {
mInstance = new NetworkService();
}
return mInstance;
}
public JSONPlaceHolderApi getJSONApi() {
return mRetrofit.create(JSONPlaceHolderApi.class);
}
}
Мой интерфейс API реализован следующим образом:
public interface JSONPlaceHolderApi {
@GET("posts/{id}")
public Call<Post> getPostWithID(@Path("id") int id);
}
И вот где я называю свой API:
public void testApi() {
Toast.makeText(this, "click", Toast.LENGTH_SHORT).show();
Log.e(TAG, "test starts" );
NetworkService service = NetworkService.getInstance();
JSONPlaceHolderApi apiInterface = service.getJSONApi();
apiInterface.getPostWithID(1).enqueue(new Callback<Post>() {
@Override
public void onResponse(Call<Post> call, Response<Post> response) {
Log.e(TAG, "DONE");
}
@Override
public void onFailure(Call<Post> call, Throwable t) {
Log.e(TAG, "onFailure : " + t.getMessage());
Log.e(TAG, "onFailure : " + t.toString());
}
});
}
Это происходит только в методе onfailed и выдает ошибку, что нет никакого адреса, связанного с именем хоста.