-1

嗨,我正在尝试使用以下代码连接互联网:

  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 级测试这个应用程序

4

4 回答 4

4

您不能在主线程上运行长时间运行的任务。请在后台移动您的网络相关任务。

请参考:AsyncTask Android 示例

于 2013-08-06T12:41:08.130 回答
2

从 Android 3.0 开始,当您尝试从主线程发出网络请求时,您会看到此错误。将此代码移至单独的线程。

于 2013-08-06T12:41:48.210 回答
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

无论如何,您不应该在 UI 线程上调用网络。

于 2013-08-06T12:50:01.450 回答
1

您首先检查哪个 ip-address 是 on (IPV4/IPV6)

于 2013-08-06T12:39:41.907 回答