2013-10-16 3 views
1

http://www.betbrain.comjsoup으로 액세스하려고 시도했지만이 경우 오류 307이 표시됩니다. 내가 이것을 어떻게 고칠 수 있는지 아는 사람?Jsoup : 페이지에 액세스 할 때 오류가 발생했습니다.

String sURL = "http://www.betbrain.com"; 
Connection.Response res = Jsoup.connect(sURL).timeout(5000).ignoreHttpErrors(true).followRedirects(true).execute(); 
+0

SURL을 sURL로 변경하십시오. 문자열에는 SURL이 없으며 문자열은 대/소문자를 구분합니다. – hichris123

답변

1

HTTP 상태 코드 307는 서버가 다른 페이지로 임시 리디렉션을 않다는 정보의 오류가 아닙니다.

HTTP 상태 코드에 대한 자세한 내용은 http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html을 참조하십시오.

request에서 반환 된 response은 헤더 내부의 리디렉션 값을 보유합니다.

는 헤더 값을 얻으려면이 같은 수 :

String[] headerValues = res.headers().values().toArray(new String[res.headers().values().size()]); 
String[] headerKeys = res.headers().keySet().toArray(new String[res.headers().keySet().size()]); 

for (int i = 0; i < headerValues.length; i++) { 
    System.out.println("Key: " + headerKeys[i] + " - value: " + headerValues[i]); 
} 

당신은 당신이 당신의 response을 필요로하는 당신이이 코스의 코드를 소유해야합니다. 콘솔에 기록 된 헤더를 볼 때

지금 당신은 키가 표시됩니다 http://www.betbrain.com/?attempt=1value을 가지고

Location합니다. 당신은 같은 것을 할 것입니다, 그래서

는 리디렉션 당신의 URL입니다 : 내가 jsoup이 올바르게 리디렉션 다음 않는 이유를 잘 모르겠습니다

String newRedirectedUrl = res.headers("location"); 
Connection.Response newResponse = Jsoup.connect(newRedirectUrl).execute(); 
// Parse the response accordingly. 

을하지만, 할 수있는 뭔가가 있었던 것처럼 보인다 HTTP 리디렉션의 표준 Java 구현

관련 문제