据我了解,connectionTimeout是连接后第一个请求发送的时间。并且,如果第一个请求的期限超过了connectionTimeout,则会引发错误。

我对吗?因此,我编写了以下代码片段,但它不起作用。

也许我误解了一些概念。非常感谢。

HttpURLConnection conn = (HttpURLConnection) new URL("http://127.0.0.1:8080/MVN.EXAMPLE/hello/HelloServlet").openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestMethod("GET");
try {
    conn.connect();
    Thread.sleep(65*1000L); // the default connectionTimedout is 20s.
    BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
}
catch (Exception e) {
    int aaa = 0; // for debug
    // If connectionTimeout is triggered, it will go here.
}
finally {
    int bbb = 0; // for debug
}


URLhttp://127.0.0.1:8080/MVN.EXAMPLE/hello/HelloServle”是Tomcat中我的本地应用程序的路径。

最佳答案

我使用telnet模拟tomcat端的connectionTimeout。


使用telnet 127.0.0.1 8080
Wait connectionTimeout //默认为20s
远程主机将在20秒后关闭Telnet
重复步骤1
键入GET / XXXX,然后telnet将获得响应


因此,这可以表明telnet仅连接到主机而不发送请求。因此,当达到connectionTimeout时,telnet客户端将关闭,这是由tomecat触发的-它会自动关闭客户端。

09-30 18:46