java. net не может разрешить доменное имя - PullRequest
0 голосов
/ 31 марта 2020

Итак, я делал свой проект на localhost, и все прошло гладко. Мне удалось сделать запрос вызова на сервер и получить ответ от моего android. Нет проблем. Затем я получил ec2 от AWS и не сопоставил ни одно доменное имя. Итак, когда я использую curl или почтальон, чтобы сделать запрос, он работает совершенно нормально. Все отлично работает. Но на тот же URL, который я пытаюсь сделать запрос от моего Retrofit, написано:

HTTP FAILED: java.net.UnknownHostException: Unable to resolve host "ec2-11-130-81-251.ap-south-1.compute.amazonaws.comapi": No address associated with hostname

Я также убедился, что я дал разрешение inte rnet на мой телефон и все остальное. Итак, обязательно ли иметь доменное имя при выполнении сетевого запроса с телефона android? есть ли способ обойти такие вещи?

вот мой модифицированный синглтон-класс, если он окажется полезным. Спасибо

public class ApiClient {

//    public static final String BASE_LOCAL_URL = "http://192.168.1.4:3000/";
//    public static final String BASE_LOCAL_EMULATOR_URL = "http://10.0.2.2:3000/";
        public static final String SERVIER_LOGIN="ec2-11-130-81-251.ap-south-1.compute.amazonaws.comapi";
    public static final String BASE_URL = SERVIER_LOGIN;

    private static Retrofit retrofit = null;

    private ApiClient() {


        if (retrofit != null) {
            throw new RuntimeException("Use getInstance() method to get the single instance of this class.");
        }
    }

    public static synchronized Retrofit getClient(Context context) {


        if (retrofit == null) {
            HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
            interceptor.level(HttpLoggingInterceptor.Level.BODY);


            AuthInterceptor authInterceptor = new AuthInterceptor(context);
            OkHttpClient client = new OkHttpClient.Builder().
                    addInterceptor(authInterceptor).
                    readTimeout(60, TimeUnit.SECONDS)
                    .writeTimeout(60, TimeUnit.SECONDS)
                    .connectTimeout(60, TimeUnit.SECONDS)
                    .addInterceptor(interceptor)
                    .build();


            retrofit = new Retrofit.Builder()
                    .baseUrl(BASE_URL)
                    .addConverterFactory(GsonConverterFactory.create(getGson()))
                    .client(client)
                    .build();

            return retrofit;
        }


        return retrofit;
    }

    private static Gson getGson() {


        return new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS").create();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...