java - HttpsURLConnection.getInputStream() 是否进行自动重试?

标签 java timeout httpsurlconnection

我正在使用 HttpsURLConnection 向服务器发出服务请求,如下面的代码:

URL url = new URL("service/url");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setConnectionTimeout(300000);
connection.setReadTimeout(300000);
parse (connection.getInputStream());

服务有时可能需要更长的时间,所以理想情况下我应该期待超时异常,但客户端正在重试并再次发送相同的请求。有没有办法明确禁用任何类型的重试?而且我什至不确定设置超时方法是否有任何不同。

我正在使用 Java 1.6

更新
我尝试了 connect() 和 getResponseCode() 而不是 getInputStream() 但行为相同:

URL url = new URL("service/url");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setConnectionTimeout(300000);
connection.setReadTimeout(300000);
connection.connect();
connection.getResponseCode();

即使这样也发出了 2 个请求。

更新
HttpClient解决了这个问题。在 HttpClient 中,您可以显式地将重试设置为 false

最佳答案

您不应该调用 openConnection()connect(),只需调用 openConnection()

关于java - HttpsURLConnection.getInputStream() 是否进行自动重试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12363913/

相关文章:

java - 如何通过 Spring 在 Hibernate 中使用 ThreadLocal

java - liquibase 迁移 2.x 到 3.0 的问题

c# - 在 C# 中调整 HttpWebRequest 连接超时

python - 如何在指定时间后中止并重试 ftp 下载?

与 JAX-WS(部署在 WL 10.3 中)的 Java ssl/https 连接失败

Android使用数据传输协议(protocol)http或https

java - 如何在Java中生成以随机多边形为中心的多边形?

在weblogic12c中调用javax.jms.QueueSession.createBrowser()时出现javax.jms.InvalidSelectorException

python - signal.alarm 没有按时触发异常

java - 如何在 JAVA 中加速 tls 协商?