当我从服务器加载内容时,此代码工作正常,但是当我用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");
谢谢
最后我找到了问题。错误提示:向(服务器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>