【问题标题】:Unable to connect with internet无法连接互联网
【发布时间】:2013-08-06 12:37:50
【问题描述】:

您好,我正在尝试使用此代码连接互联网:

  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 测试此应用

【问题讨论】:

标签: android


【解决方案1】:

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

请参考:AsyncTask Android example

【讨论】:

  • @juned - 请不要奖励懒人,这个问题已经回答了无数次了。
【解决方案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 线程上调用网络。

【讨论】:

  • 我会说这是解决这个问题的最糟糕的解决方案,没关系它被接受了。不要那样做!
【解决方案3】:

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

【讨论】:

    【解决方案4】:

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

    【讨论】:

    • 地址在我的浏览器上运行,但在安卓系统中不运行
    最近更新 更多