如何解决java.net.ConnectException:连接超时

时间:2019-02-01 09:58:05

标签: java exception httpurlconnection

我正在尝试使用以下代码连接 Google.com ,但获得

java.net.ConnectException: Connection Timed out
。 请帮忙!

private static String getUrlContents(String theUrl) {

    StringBuilder content = new StringBuilder();

    // many of these calls can throw exceptions, so i've just
    // wrapped them all in one try/catch statement.
    try {
        // create a url object
        URL url = new URL(theUrl);

        // create a urlconnection object
        URLConnection urlConnection = url.openConnection();

        // wrap the urlconnection in a bufferedreader
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));

        String line;

        // read from the urlconnection via the bufferedreader
        while ((line = bufferedReader.readLine()) != null) {
            content.append(line + "\n");
        }
        bufferedReader.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return content.toString();
}

2 个答案:

答案 0 :(得分:0)

我刚刚尝试了您的代码,但效果很好。

似乎是网络问题,可能您无法访问Internet,或者防火墙正在停止连接。假设您在UNIX系统中,请尝试:

  1. ping www.google.com -C 1如果您没有得到答案,并且具有正常的访问连接(即来自浏览器),则可能是防火墙问题。

  2. traceroute www.google.com,检查应该是谷歌的服务器通常一个或两个的跳数。

如果您使用的是CentOS,则应严格限制防火墙,以尝试进行测试: sudo systemctl stop firewalld 请记住再次启动它,并添加执行请求所需的规则。

答案 1 :(得分:-1)

因此,您不问怎么做如何从Java中的URL读取内容? Read url to string in few lines of java code

描述了一个问题,您希望对其进行分析甚至解决:

  

获取java.net.ConnectException: Connection timed out

请参见following answer来提问Connection timed out. Why?

  

您应注意的事项:

     
      
  • 您可以 ping 托管人(google.com)吗?
  •   
  • 您可以使用网络浏览器连接到http://www.google.com吗?
  •   
  • 您可以在 Web浏览器中使用 HTTPS 连接到https://www.google.com吗?
  •   
  • 您可以使用您的程序连接到http://www.google.com吗?
  •   
  • 您可以使用程序连接到任何其他URL吗?
  •   
     

您的问题很可能与防火墙有关。我的第一个猜测是您没有设置正确的环境变量或Java系统属性来告诉JVM将本地代理服务器用于传出的HTTP / HTTPS请求

从URL读取内容的另一种方法可能是免费的开源 JSoup 库。看一下如何在您的情况下使用它:http://jsoup.org/cookbook/input/load-document-from-url

使用JSoup,您甚至可以优雅地解析返回的HTML文档。