1

我有一个正在测试的 Web 应用程序。使用 Fiddler/Httpfox,我可以看到在登录 Web 应用程序时,在收到 200 OK 响应之前有两个 302 HTTP 重定向。是否可以使用 Java 代码观察这两个重定向?

这是我编码的:

public class HttpReq {
    HttpURLConnection con = null;
    StringBuilder str = new StringBuilder();
    BufferedReader br = null;
    URL address = null;
    String line = null;

    HttpReq () {
      try {
        address = new URL("http://walhs24002v.us.oracle.com/t1mockapp1/");
        con = (HttpURLConnection)address.openConnection();
        con.setRequestMethod("GET");
        con.setReadTimeout(60000);
        con.setConnectTimeout(60000);
        con.setDoOutput(true);
        con.setInstanceFollowRedirects(true);

        con.connect();

        InputStreamReader is  = new InputStreamReader(con.getInputStream());
        br = new BufferedReader(is);
        while((line = br.readLine()) != null)
        {
            str.append(line + '\n');
        }
        //System.out.println(str);
        System.out.println(con.getResponseCode());
        System.out.println(con.getResponseMessage());
      }
      catch (MalformedURLException m)
      {
        m.printStackTrace();
      }
      catch (IOException i)
      {
        i.printStackTrace();
      }
      finally
      {
        br = null;
        str = null;
        con = null;
      }
  }

  public static void main(String[] args) {
    HttpReq http = new HttpReq();
      }

}

程序给出输出:200 OK

那里没有惊喜。有没有办法在收到 200 ok 之前捕获两个 302 重定向?

4

1 回答 1

0

使用 defaulthttpclient 你肯定可以:

http://hc.apache.org/httpcomponents-client-ga/tutorial/html/httpagent.html

ClientPNames.HANDLE_REDIRECTS='http.protocol.handle-redirects':定义是否应该自动处理重定向。此参数需要 java.lang.Boolean 类型的值。如果未设置此参数,HttpClient 将自动处理重定向。

于 2012-12-04T00:47:48.177 回答