У меня есть 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
на мобильных данных
Вопрос
1) Почему я не могу подключиться через WiFi network
где Mobile Data
отлично в порядке?
2) Как решить эту проблему?
НОТА: Иногда он подключается, иногда нет.
Ваш DNS не знает IP-адрес запрошенного сайта.
У вас возникли проблемы, потому что DNS вашего Wi-Fi-соединения не может преобразовать имя хоста в IP-адрес.
И ваш носитель данных использует другой DNS, который связал IP-адрес с именем хоста.
Попробуйте изменить адрес DNS-сервера на маршрутизаторе Wifi или использовать прямой IP-адрес веб-сайта, если он доступен.
Вот некоторые адреса DNS-серверов Google
У вас может быть проблема 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, так и на мобильные данные.