Java - загрузка контента с IP вместо домена - PullRequest
0 голосов
/ 24 марта 2020

Этот код работает нормально, когда я загружаю контент с сервера, но когда я заменяю URL-адрес сервера IP-адресом, я получаю ошибку IOException.

Есть идеи, почему?

String URLToFetch = "http://www.example.com";
final URL url = new URL(URLToFetch);
URLConnection c = url.openConnection();
c.setUseCaches(false);
c.setConnectTimeout(8000);
c.setReadTimeout(8000);

BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String str;
if ((str = in.readLine()) != null) {
    Log.i("tag", "Result from HTTP: " + str.toString());
}
in.close();

I даже использовал, использовал это, но это не работало

final URL url = new URL("http", ServerIpAddress, 80, "/index.php");

Спасибо

1 Ответ

0 голосов
/ 24 марта 2020

Наконец я нашел проблему. В сообщении об ошибке говорится: открытый текст http traffi c to (IP-адреса серверов) не разрешен

Вот проблема:

Начиная с Android 9 (уровень API 28), поддержка открытого текста по умолчанию отключено.

Все, что мне нужно было сделать, чтобы решить эту проблему, это добавить это в мой манифест:

<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
    <uses-permission android:name="android.permission.INTERNET" />
    <application
        ...
        android:usesCleartextTraffic="true"
        ...>
        ...
    </application>
</manifest>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...