【问题标题】:HttpURLConnection- connect() throws Java ConnectExceptionHttpURLConnection-connect() 抛出 Java ConnectException
【发布时间】:2015-07-07 10:21:26
【问题描述】:

我用代码

public static int getResponseCode(String urlString) throws MalformedURLException, IOException {         
    URL u = new URL(urlString);  
    HttpURLConnection huc = (HttpURLConnection) u.openConnection();
    huc.setRequestMethod("GET");
    huc.connect();
    return huc.getResponseCode();  
}  

获取响应代码。当我运行代码时,我得到一个异常 java.net.ConnectException:连接超时 在 java.net.PlainSocketImpl.socketConnect(Native Method)

我打印了导致此错误的 URl,然后将其加载到浏览器中。链接已加载,但过了一段时间,大约 2 分钟。未返回状态码的原因可能是什么?我该如何处理这种情况?

感谢您的帮助!

沙里

【问题讨论】:

  • 你能发布错误信息吗?
  • 是的.. java.net.ConnectException:连接超时在 java.net.PlainSocketImpl.socketConnect(Native Method)
  • 可以发网址吗?
  • quote2sales.com 是网址

标签: java selenium-webdriver httpurlconnection connectexception


【解决方案1】:

尝试在huc.connect() 之前调用huc.setReadTimeout(120000);

但是,我担心您的服务器端出了点问题。为什么它会在大约 2 分钟后回复?

【讨论】:

  • 是的,有时加载太慢了。
  • 我刚刚检查了 google.com 的相同代码,但 URL google.co.in/intl/en/options 遇到了相同的错误
  • Google.com 对我来说运行良好,并且只需不到 1 秒的时间。您的互联网连接似乎有问题。
  • 是的 google.com 加载,但是当 URL google.co.in/intl/en/options 传递给它时,上面的代码会引发该异常
  • 我将禁用我的机器代理并查看:)
【解决方案2】:

您是说在浏览器中加载内容需要 2 分钟。很可能,您的连接超时。您可以尝试set a longer timeout为您的连接以毫秒为单位3分钟

huc.setConnectTimeout(1800000);

如果问题不是超时,那么很可能您必须为连接设置代理。检查浏览器中的代理设置并设置适当的值。例如,请参阅this question,了解如何操作。

【讨论】:

  • 我刚刚检查了 google.com 的相同代码,并遇到了 URL google.co.in/intl/en/options 的相同错误
  • 用另一个建议编辑了我的答案
  • 我已经禁用了代理,但仍然有一些链接出现这个问题。 :(
  • 这可能是因为公司防火墙,如果有一个,你去外部链接...
猜你喜欢
  • 2013-07-07
  • 1970-01-01
  • 2014-06-28
  • 2012-09-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-11
  • 1970-01-01
  • 2013-03-07
相关资源
最近更新 更多