我已经使用Google搜索了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,无论哪种方式,我都需要捕获初始回应)。
另外需要注意的是,实际访问myUrlObject指向的资源可能在时间上相对昂贵,并且在完成后,我可以期望我的代码可以被许多用户以相当快的速度连续执行(从而导致并发执行)。即使仅仅因为这个原因,我也不想在openConnection()调用周围使用外部锁定机制。
有关如何最好地进行的任何建议?
答案 0 :(得分:4)
您是否尝试过HttpURLConnection.setInstanceFollowRedirects()
?
HttpURLConnection connection = (HttpURLConnection) myUrlObject.openConnection();
connection.setInstanceFollowRedirects(false);
答案 1 :(得分:0)
不
public void setInstanceFollowRedirects(boolean followRedirects)
做你想做的事吗?