我用谷歌搜索了这个,还有 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/