Java-从IP而不是域中加载内容

问题描述 投票:-1回答:1

当我从服务器加载内容时,此代码工作正常,但是当我用IP地址替换服务器URL时,出现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();

我什至曾经用过,但是没有用

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

谢谢

java android http url
1个回答
0
投票

最后我找到了问题。错误提示:向(服务器IP)的明文HTTP流量不允许]

这里是问题:

从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>
© www.soinside.com 2019 - 2024. All rights reserved.