Кодовое имя Иногда см. ConnectException при подключении к URL доменного имени. - PullRequest
1 голос
/ 16 мая 2019

У меня есть доменное имя www.example.com с IP-адресом 1.2.3.4

В моем коде я подключаюсь к https://www.example.com:8443 для вызова некоторых служб REST. (IP-адрес никогда не используется) Это все работает нормально, но иногда я получаю:

Exception: java.net.ConnectException - Failed to connect to 
www.example.com/1.2.3.4:8443
java.net.ConnectException: Failed to connect to www.example.com/1.2.3.4:8443 
at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:1418)
at   com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:1368)
    at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:219)
    at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:142)
    at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:104)
    at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:392)
    at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:325)
    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:470)
    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:416)
    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:547)
    at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:105)
    at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:26)
    at com.codename1.impl.android.f.J(AndroidImplementation.java:5614)
    at com.codename1.l.g.j(ConnectionRequest.java:773)
    at com.codename1.l.s$c.run(NetworkManager.java:325)
    at com.codename1.impl.b$1.run(CodenameOneThread.java:60)
    at java.lang.Thread.run(Thread.java:764)    

Проблема: иногда IP-адрес (1.2.3.4) кажется суффиксированным к имени домена, что приводит к неверному URL-адресу для подключения и, следовательно, к исключению. Это не происходит постоянно.

Есть идеи, что может быть причиной искажения URL?

Из браузера на устройстве:
Нет Wi-Fi и нет мобильной сети: не удается подключиться
С Wi-Fi, но без мобильной сети: может подключиться
Нет Wi-Fi, но с мобильной сетью: можно подключить

1 Ответ

0 голосов
/ 18 мая 2019

IP-адрес на самом деле не является суффиксом, исключение Android просто приводит его в замешательство, так как это не удается на этапе подключения к серверу.Он перечисляет IP, который пытается открыть.После подключения сервера выполняется запрос get для фактического URL, но этот этап еще не достигнут.

Я не уверен, почему сбой происходит несколько раз и не возникает на других, кроме беспроводныхсети ненадежны, поэтому могут иметь к этому какое-то отношение.

...