java - 在 HttpURLConnection 上设置 FollowRedirects 的实例值

标签 java

我用谷歌搜索了这个,还有 checked the documentation ,但未能得出答案。所以现在我希望这里的人至少对从哪里开始有一个很好的建议。

我有(为清楚起见缩写):

import java.net.URL;
import java.net.HttpURLConnection;

URL myUrlObject = new URL("some ungodly long URL");
HttpURLConnection.setFollowRedirects(false);
HttpURLConnection connection = (HttpURLConnection) myUrlObject.openConnection();

原则上,这工作正常。但是,我有点担心在服务器应用程序中调用静态 setFollowRedirects()(代码作为 servlet 运行),以及它如何与多个并发实例交互,可能是 < em>将希望自动跟随重定向。所以,我宁愿将它设置在一个实例对象上,然后使用该实例对象打开连接。问题是我无法直接实例化 HttpURLConnection 对象,在我的实验中,似乎无论我做什么(除了之前执行 setFollowRedirects(false) 之外),openConnection() 默认都会遵循它遇到的任何重定向。我坚持在 URL 的另一端获得应用程序的实现(在正常情况下可以返回 HTTP 200 OK 或 302 Found,无论哪种方式,我都需要捕获 initial 响应)。

另外需要注意的是,实际访问 myUrlObject 指向的资源可能会花费相对较多的时间,完成后,我可以预期我的代码将被许多用户快速连续地执行(因此导致并发执行)。即使仅出于这个原因,我也不想在 openConnection() 调用周围使用外部锁定机制。

关于如何最好地进行的任何建议?

最佳答案

您是否尝试过HttpURLConnection.setInstanceFollowRedirects()

HttpURLConnection connection = (HttpURLConnection) myUrlObject.openConnection(); 
connection.setInstanceFollowRedirects(false);

关于java - 在 HttpURLConnection 上设置 FollowRedirects 的实例值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4931993/

相关文章:

java - Java 中十六进制 key 、IV 和数据的 AES 加密

java - 为什么我不能在 Java 8 中继续使用带有 Collections#forEach 的标签?

java - 计算 Tabhost 中的选项卡总数

java - 如何使用 mouselistener 访问一个组件而不是另一个组件

java - 在 HQL 查询中使用 native SQL 子查询?

java - 为什么编译器会说如果变量需要在循环中才能通过,则可能不会对其进行初始化?

java - 使用 POS 标注器计算每个词性的数量

java - 更改 java.util.List 的输出类型

java - XML解析器java跳过dtd验证

java - tomcat ExpiresFilter 不起作用