2014-11-19 3 views
1

내 코드는 POST 요청을 웹 사이트에 보내지 만 응답은 이상한 문자로 암호화 된 것처럼 보입니다. 피들러 프록시를 사용하도록 앱을 구성하면 응답이 유효합니다. 내 앱이이 응답의 암호를 해독하도록하려면 어떻게해야합니까?HttpsURLConnection을 해독하는 방법

public class Login { 
public Login() throws Exception { 
URL url = new URL("https://account.leagueoflegends.com/auth"); 
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection(); 
conn.setDoInput(true); 
conn.addRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36"); 
conn.addRequestProperty("Cookie", "xxx"); 
conn.addRequestProperty("Content-Length", "406"); 
conn.addRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); 
conn.addRequestProperty("Accept-Encoding", "gzip,deflate"); 
conn.addRequestProperty("Connection", "keep-alive"); 
conn.addRequestProperty("Referer", "xxx"); 
conn.setDoOutput(true); 

OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream()); 

writer.write("xxx"); 
writer.flush(); 
String line; 
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
while ((line = reader.readLine()) != null) { 
    System.out.println(line); 
} 
writer.close(); 
reader.close(); 

}

+0

안녕하십니까, Krystian. 다음 번에 Krystian에서 스트림의 샘플 입력을 추가하는 것을 잊지 마십시오. 바이트를 문자로 쉽게 인쇄 할 수없는 경우에는 16 진수가 바람직합니다. 다른 사람은 질문이 명확하지 않기 때문에 닫습니까? 정말? –

답변

1

명시 적으로 압축 된 스트림을 요청하는 :

conn.addRequestProperty("Accept-Encoding", "gzip,deflate"); 

는 압축을 제거하는 그 라인을 제거합니다. 다행스럽게도 압축은 암호화와 다릅니다. 키를 제공 할 필요가 없습니다.

+0

관련 항목 : http://stackoverflow.com/questions/4818468/how-to-check-if-inputstream-is-gzipped –