gpt4 book ai didi

java - 为什么 URL 启动时会出现 "java.net.ConnectException: Connection timed out"异常?

转载 作者:IT老高 更新时间:2023-10-28 11:44:45 26 4
gpt4 key购买 nike

我的代码中出现了 ConnectException: Connection timed out,并且出现了一些频率。我要访问的 URL 已启动。相同的代码适用于某些用户,但不适用于其他用户。似乎一旦一个用户开始得到这个异常,他们就会继续得到这个异常。

这是堆栈跟踪:

java.net.ConnectException: Connection timed out
Caused by: java.net.ConnectException: Connection timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.Socket.connect(Socket.java:516)
at java.net.Socket.connect(Socket.java:466)
at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:365)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:477)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:214)
at sun.net.www.http.HttpClient.New(HttpClient.java:287)
at sun.net.www.http.HttpClient.New(HttpClient.java:299)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:796)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:748)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:673)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:840)

这是我的代码片段:

URLConnection urlConnection = null;
OutputStream outputStream = null;
OutputStreamWriter outputStreamWriter = null;
InputStream inputStream = null;

try {
URL url = new URL(urlBase);
urlConnection = url.openConnection();
urlConnection.setDoOutput(true);

outputStream = urlConnection.getOutputStream(); // exception occurs on this line
outputStreamWriter = new OutputStreamWriter(outputStream);
outputStreamWriter.write(urlString);
outputStreamWriter.flush();
inputStream = urlConnection.getInputStream();
String response = IOUtils.toString(inputStream);
return processResponse(urlString, urlBase, response);
} catch (IOException e) {
throw new Exception("Error querying url: " + urlString, e);
} finally {
IoUtil.close(inputStream);
IoUtil.close(outputStreamWriter);
IoUtil.close(outputStream);
}

最佳答案

连接超时(假设一个本地网络和多台客户端计算机)通常是由

引起的

b) 网络配置错误或线路过载导致丢包

c) 过多的请求使服务器过载

d) 服务器上同时存在少量可用线程/进程,导致所有线程/进程都被占用。这种情况尤其发生在需要很长时间才能运行并可能与 c) 结合的请求中。

希望这会有所帮助。

关于java - 为什么 URL 启动时会出现 "java.net.ConnectException: Connection timed out"异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/86824/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com