HttpURLConnection.getResponseCode()确实返回301(在java中)

时间:2013-07-10 16:34:23

标签: java http network-programming

我正在尝试使用java.net。* libs捕获具有301状态代码的HTTP,而不是直接使用套接字。 但问题是HttpURLConnection.getResponseCode()此方法不返回301状态代码,而是当遇到带有301状态代码的标题时,它会自动在URL后面放一个斜杠并重试,显然它会返回200状态代码,任何警告或通知就像浏览器一样。我想要的是从HttpURLConnection.getResponseCode()返回301状态代码。 这是我的代码:

domain.http_Con = (HttpURLConnection)url.openConnection();
int res = domain.http_Con.getResponseCode();
System.out.print(res);

如果它是301,我只想要res 301。

P.S:  我想通过301检测目录。

1 个答案:

答案 0 :(得分:4)

默认情况下,HttpURLConnection会遵循重定向(例如301)。只需在连接前禁用它:

httpCon.setInstanceFollowRedirects(false);
httpCon.connect();
int res = httpCon.getResponseCode(); // should now return 301

<强>参考文献: