【问题标题】:Android app using HttpURLConnection crashes at connect()使用 HttpURLConnection 的 Android 应用程序在 connect() 处崩溃
【发布时间】:2012-07-12 14:28:18
【问题描述】:

我有以下一段代码,基本上是从示例中复制粘贴的,因为我是 Java 和 Android 新手(不熟悉编程):

      URL vurl = new URL(voteurl); //vuteurl is a string containing a proper URL
      HttpURLConnection hc;
      hc=null;
      hc = (HttpURLConnection)vurl.openConnection();
      hc.setRequestMethod("GET");
      hc.setDoOutput(true);
      hc.setReadTimeout(10000);
      hc.connect();

在“hc.connect();”这一行应用程序崩溃,Android 通知我它已停止。 将 android.permission.INTERNET 添加到应用程序使用的权限没有帮助。

【问题讨论】:

  • 你能添加崩溃的堆栈跟踪吗?
  • 显示的代码是否包含在 try/catch 块中?
  • 查看 logcat 输出,里面肯定有更多关于异常的信息
  • 你是在主线程上执行这个网络操作吗?如果是这样,您可能会遇到 NetworkOnMainThreadException。正如其他人所说,请从 logcat 发布堆栈跟踪。
  • Android 不会让你在较新版本的主线程上进行网络操作,因为存在网络操作太慢并锁定你的设备的风险,因为主线程正在等待完成在执行另一项任务之前。

标签: java android http url


【解决方案1】:

好的,事实证明 Android 不喜欢主线程中的网络操作。 在单独的线程中执行请求就可以了。谢谢大家的帮助!

【讨论】:

    【解决方案2】:
    URL vurl = null;
        try {
            vurl = new URL(voteurl);
        } catch (MalformedURLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } //vuteurl is a string containing a proper URL
        HttpURLConnection hc;
        hc=null;
        try {
            hc = (HttpURLConnection)vurl.openConnection();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        try {
            hc.setRequestMethod("GET");
        } catch (ProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        hc.setDoOutput(true);
        hc.setReadTimeout(10000);
        try {
            hc.connect();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-07
      • 1970-01-01
      • 2020-08-24
      • 2013-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多