Java не может подключиться через WiFi, но возможно через Mobile Data

У меня есть php файл с именем test.php хранится в моем Openshift сервер (http://phpgear-shifz.rhcloud.com/v1/test.php) с кодом ниже.

<?php
echo "Hello";

задача

Я пытаюсь загрузить текст из приложения Android.

проблема

Я получаю java.net.UnknownHostException: Unable to resolve host "phpgear-shifz.rhcloud.com": No address associated with hostname при подключении через WiFi сеть, но все в порядке с Mobile Data,

Код активности Android

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);

final TextView tvTest  = (TextView) findViewById(R.id.tvTest);

new AsyncTask<Void, Void, String>() {
@Override
protected String doInBackground(Void... params) {

try {
final URL url = new URL("http://phpgear-shifz.rhcloud.com/v1/test.php");
final BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
final StringBuilder sb = new StringBuilder();
String line;
while((line = br.readLine())!=null){
sb.append(line).append("\n");
}

br.close();
return sb.toString();

} catch (IOException e) {
e.printStackTrace();
return "Error: "  + e.getMessage();
}
}

@Override
protected void onPostExecute(String result) {
tvTest.setText(result);
}
}.execute();

}

ОТВЕТЫ

по WiFi

onWiFi

на мобильных данных

onMobileData

Вопрос

1) Почему я не могу подключиться через WiFi network где Mobile Data отлично в порядке?

2) Как решить эту проблему?

НОТА: Иногда он подключается, иногда нет.

12

Решение

Ваш DNS не знает IP-адрес запрошенного сайта.

У вас возникли проблемы, потому что DNS вашего Wi-Fi-соединения не может преобразовать имя хоста в IP-адрес.
И ваш носитель данных использует другой DNS, который связал IP-адрес с именем хоста.

Попробуйте изменить адрес DNS-сервера на маршрутизаторе Wifi или использовать прямой IP-адрес веб-сайта, если он доступен.

Вот некоторые адреса DNS-серверов Google

  • 8.8.8.8
  • 8.8.4.4
5

Другие решения

У вас может быть проблема IPv4 или IPv6. Многие мобильные тарифные планы используют IPv6, в то время как большинство установок WiFi в настоящее время используют IPv4, поэтому вы можете переключаться не только на сетевой уровень; Вы можете переключаться между протоколами третьего уровня.

Запись DNS для phpgear-shifz.rhcloud.com указывает на IPv4-адрес (только), поэтому должен работать по WiFi. Но, может быть, ваше мобильное устройство использует DNS-сервер IPv6 и не может разрешить имя через IPv4?

Другая возможность: ваше мобильное устройство может иметь более общую проблему в стеке IPv4. Ваши мобильные данные могут использовать одну из технологий перехода от 6 к 4 и, таким образом, обойти вашу локальную проблему IPv4.

Я заметил еще одну проблему с DNS-именем phpgear-shifz.rhcloud.com, хотя сомневаюсь, что это связано.

Эта запись DNS на самом деле является записью CNAME, которая указывает на другую запись CNAME, которая, в свою очередь, указывает на запись A на Amazon. Двойные косвенные адреса CNAME являются нарушением RFC DNS, хотя большинство распознавателей должны все равно это обрабатывать. Кроме того, если это была проблема, это должно одинаково повлиять как на WiFi, так и на мобильные данные.

4

По вопросам рекламы [email protected]