您好我正在尝试使用此代码连接互联网:
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://192.168.0.100/webnet/xyz.php");
String result = null;
InputStream is = null;
StringBuilder sb = null;
HttpResponse response = httpclient.execute(httppost);
我在清单文件上注册了Internet权限
我收到了这个错误:
System.err android.os.StrictMode $ AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
我使用API级别8测试此应用
答案 0 :(得分:4)
您无法在主线程上运行长时间运行的任务。请在后台移动与您的网络相关的任务。
答案 1 :(得分:2)
从Android 3.0开始,当您尝试从主线程发出网络请求时,您会看到此错误。将此代码移动到单独的线程中。
答案 2 :(得分:2)
在执行此代码块之前尝试此操作。可能在某些情况下有效:
try {
Class strictModeClass=Class.forName("android.os.StrictMode");
Class strictModeThreadPolicyClass=Class.forName("android.os.StrictMode$ThreadPolicy");
Object laxPolicy = strictModeThreadPolicyClass.getField("LAX").get(null);
Method method_setThreadPolicy = strictModeClass.getMethod("setThreadPolicy",strictModeThreadPolicyClass );
method_setThreadPolicy.invoke(null,laxPolicy);
}
catch (Exception e) {
}
在此处提出问题之前先尝试一下:“google.com”#接受kevinDTimm
答案 3 :(得分:1)
首先检查哪个IP地址是打开的(IPV4 / IPV6)