1

테스트중인 웹 응용 프로그램이 있습니다. Fiddler/Httpfox를 사용하면 200 OK 응답이 수신되기 전에 웹 응용 프로그램에 로그인 할 때 302 개의 HTTP 리디렉션이 있음을 알 수 있습니다. Java 코드를 사용하여 두 개의 리디렉션을 관찰 할 수 있습니까?Java에서 302 리디렉션 관찰/캡처

이것은 내가 코딩 것입니다 :이

없음 놀라움 OK :

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를 받기 전에 두 개의 302 리디렉션을 캡처하는 방법이 있습니까?

+1

setInstanceFollowRedirects (false)? – irreputable

+0

@irreputable : 예, 그렇습니다. 감사! – codewarrior

답변

0

defaulthttpclient 사용하면 가장 확실하게 할 수 있습니다

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

ClientPNames.HANDLE_REDIRECTS = 'http.protocol.handle-리디렉션' 가 리디렉션이 자동으로 처리할지 여부를 정의합니다. 이 매개 변수는 java.lang.Boolean 유형의 값을 필요로합니다. 이 매개 변수 이 설정되지 않으면 HttpClient가 자동으로 리디렉션을 처리합니다.

관련 문제