1

テスト中の Web アプリケーションがあります。Fiddler/Httpfox を使用すると、Web アプリにログインすると、200 OK 応答が受信される前に 2 つの 302 HTTP リダイレクトがあることがわかります。Java コードを使用して 2 つのリダイレクトを観察することは可能ですか?

これは私がコーディングしたものです:

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 を受信する前に 2 つの 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 に答える