【问题标题】:java.net.SocketTimeoutException: Connect timed outjava.net.SocketTimeoutException:连接超时
【发布时间】:2021-06-11 12:16:58
【问题描述】:

对任何站点的 http 请求都会引发 SocketTimeoutException。这可能与什么有关?

public class Main {

    public static void main(String[] args) {
        try {
            HttpURLConnection connection = (HttpURLConnection) new URL("https://coderlessons.com/tutorials/java-tekhnologii/uznaite-jsoup/jsoup-kratkoe-rukovodstvo").openConnection();
            connection.setRequestMethod("GET");
            connection.setConnectTimeout(2000);
            connection.setReadTimeout(2000);
            connection.connect();

            if(HttpURLConnection.HTTP_OK == connection.getResponseCode()) {
                BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                String str = reader.readLine();
                while (str != null) {
                    System.out.println(str);
                    str = reader.readLine();
                }

                reader.close();
            }
            else{
                System.out.println("Error " + connection.getResponseCode());
            }

            connection.disconnect();
        }
        catch (MalformedURLException ex){
            ex.printStackTrace();
        }
        catch (IOException ex){
            ex.printStackTrace();
        }
    }
}

我尝试通过 URLConnection 连接到服务器,但捕获到 Connectexception 异常

【问题讨论】:

  • 这段代码在我的机器上运行良好。请显示完整的堆栈跟踪。

标签: java http request socket-timeout-exception


【解决方案1】:

可能是 cookie 的原因,请检查 URL 的标头是否相同。

如果它是静态的,只需复制并粘贴到您的代码中,

如果动态则收集使用响应然后通过。

试试可能会有效果。

【讨论】:

    【解决方案2】:

    我认为问题在于“https”。您无法在没有证书的情况下向 https URL 发送请求。请尝试 http URL 或使用 SSL 证书。

    【讨论】:

      猜你喜欢
      • 2013-12-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-24
      • 2020-10-30
      • 1970-01-01
      • 2016-07-27
      • 2015-10-31
      • 2011-12-13
      相关资源
      最近更新 更多