InputStream 不会打开到指定 URL 的流

Posted

技术标签:

【中文标题】InputStream 不会打开到指定 URL 的流【英文标题】:InputStream won't open a stream to a specified 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 以获得更有用的错误消息 你确定你的应用有权限 吗? 我的清单文件中有用户权限行。 【参考方案1】:

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

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

【讨论】:

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

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

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

【讨论】:

我猜你正在用模拟器测试,不是吗?在这种情况下,您应该尝试重新创建一个新的 AVD。 (“您是否尝试过将其关闭再打开?”——IT 人群)

以上是关于InputStream 不会打开到指定 URL 的流的主要内容,如果未能解决你的问题,请参考以下文章

InputStream 连接到 URL 但不返回任何内容

js如何判断一个页面是不是已跳转到指定的页面了呢

InputStream in = null; in = FileUtils.openInputStream(file)

InputStream 不会关闭,或者需要永远

来自 URL 的 InputStream

IO-转换流