HTTP URL重定向状态代码

时间:2015-01-19 11:51:10

标签: java

我给的网址被重定向。当我用某个浏览器点击网址时,它会重定向到另一个网站。当我在一些休息客户端测试它时,我得到http代码302,这对于重定向是正确的。但我尝试使用下面的代码相同,它返回200.有人可以帮助我吗?在此先感谢。 更新的网址。

    try {
     URL url = new URL("https://securestore.hbo.com/cart.php?f=pplogin&ppx=1&method=checkout");
     HttpURLConnection connection = (HttpURLConnection) url.openConnection();
     connection.connect();
     int code = connection.getResponseCode();
     System.out.println(connection.getResponseMessage());
     System.out.println("code is" + code);
     connection.disconnect();
    }
    catch (MalformedURLException e) {
          e.printStacTrace();
    }
    catch (IOException e) {
      e.printStackTrace();
   }

4 个答案:

答案 0 :(得分:0)

如果将url1重定向到url2,那么您将获得302状态。但是,如果您的代码是直接调用url2,那么您必然会获得200。

答案 1 :(得分:0)

请尝试以下代码。

import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
.....
connection = (HttpConnection)Connector.open(url);
responseCode = connection.getResponseCode();

答案 2 :(得分:0)

默认情况下,HttpURLConnection将遵循重定向。

如果您不想遵循重定向,请尝试设置以下内容:

HttpURLConnection.setFollowRedirects(false);

例如,关于您的代码:

try {
     URL url = new URL("");
     HttpURLConnection.setFollowRedirects(false);
     HttpURLConnection connection = (HttpURLConnection) url.openConnection();
     connection.connect();
     int code = connection.getResponseCode();
     System.out.println(connection.getResponseMessage());
     System.out.println("code is" + code);
     connection.disconnect();
}
catch (MalformedURLException e) {
      e.printStacTrace();
}
catch (IOException e) {
  e.printStackTrace();

}

答案 3 :(得分:0)

尝试使用您想要的302代码添加回复。像connection.setStatus(statusCode)这样的东西我可能错了。