【问题标题】:InputStream won't open a stream to a specified URLInputStream 不会打开到指定 URL 的流
【发布时间】:2011-12-29 20:34:32
【问题描述】:

我只是想将一个 URL 加载到 InputStream 中,但它似乎永远无法管理。

private void getWebpage(String url)
{
    URL myFileUrl = null;  

    try
    {
         myFileUrl= new URL(url);
    }
    catch (MalformedURLException e)
    {
        System.out.println("Malformed URL Exception");
    }
    catch (Exception e)
    { 
        System.out.println("Some URL Exception");
    }

    try
    {
        InputStream in = myFileUrl.openStream();
        System.out.println("Does it get here?");
        is = new BufferedInputStream(in);
        in.close();
        is.close();
    }
    catch (IOException e)
    {
        System.out.println("Some IO Exception");
    }
    catch (Exception e)
    {
        System.out.println("Some Exception");
    }   
}

它从不打印“它到达这里了吗?”到控制台,但它确实打印出一些 IO 异常。我所知道的世界上没有最好的错误消息。

【问题讨论】:

  • 使用e.printStackTrace 而不是System.out.println 以获得更有用的错误消息
  • 你确定你的应用有权限 吗?
  • 我的清单文件中有用户权限行。

标签: java android url exception inputstream


【解决方案1】:

那么它是否会突破到其中一个异常?如果无法打开文件,则会跳到catch语句

编辑:实际上您是在尝试加载网页吗?

【讨论】:

  • 是的,它正在被 IOException 捕获
  • 您传递给它的字符串值有问题。你想做什么?
  • 我正在尝试将网页内容加载到字符串中。如果 URL 不正确,那么我应该能够将 myFileUrl 设置为 http://www.google.com 和然后它应该可以工作。我测试了它,但它仍然做同样的事情。
  • 你看过它抛出了什么异常
  • 请求时间失败:java .net .SocketException 地址族不受协议支持
【解决方案2】:

一般来说,代码运行良好。

所以你的网络连接肯定有问题。您是直接连接到互联网还是必须通过代理?

【讨论】:

  • 我猜你正在用模拟器测试,不是吗?在这种情况下,您应该尝试重新创建一个新的 AVD。 (“您是否尝试过将其关闭再打开?”——IT 人群)
猜你喜欢
  • 2023-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-06
  • 1970-01-01
  • 1970-01-01
  • 2019-09-05
  • 1970-01-01
相关资源
最近更新 更多