2014-05-21 3 views
0

jsoup로 사이트에 로그인했습니다. 로그인 후 다음 페이지의 모든 내용을 얻었습니다. 인용 부호가 붙은 링크가 있습니다.이 링크를 클릭하면 새로운 URL (코드 번호 1) 으로 리디렉션됩니다.이 URL은 코드 번호 2에서 URL로 다시로드됩니다.하지만 내 코드는 나를 URL 2로 유도하지 않습니다. 아무에게도 말할 수 있습니까? 내가 실수를 저지르고 있니?jsoup에 의해 www가 없습니다.

여기 내 코드입니다. 나는 두 가지 옵션으로 해냈지만 아무도 작동하지 않습니다.

1)

Document doc2 = Jsoup.connect("https://www.infinityagents.com/AgencyServices/ForwardOnelinkServlet") 
       .cookie("JSESSIONID", sessionID) 
       .timeout(300000) 
       .followRedirects(true) 
       .post(); 

2)

Connection.Response docd = Jsoup.connect("https://webrater.infinityagents.com/start.do") 
       .cookie("JSESSIONID", sessionID) 
       .followRedirects(true) 
       .execute(); 
+0

당신은 URL이 리디렉션하지 않음으로써 무엇을 의미합니까? 어떤 오류가 있습니까? –

+0

실제 사이트에서 내 목적지 링크는 2 번이지만 직접 열지 않습니다. 코드 1에서 열리고 링크 2로 다시로드됩니다. 하지만 여기서는 jsoup.If를 통해 코드 (1)를 쓰고 있습니다. 그것은 내 목적지 링크 2로 리다이렉트하지 않는다. 그리고 코드 2를 쓰면 나에게 URL의 에러를 준다 .. – user3635559

답변

1

아마 후에 그것을 로그인 세션 또는 어떤 형태의 데이터의 일부 데이터를 유지하고 그 이후의 액세스를 위해이 값을 기대하고있다. 당신은 이것을 찾아서 공급해야합니다. 또 다른 경우는 리디렉션의 출처를 확인할 수 있습니다. 403 오류가 발생합니까? 이 경우 참조자를 설정하려고 시도하십시오.

Connection.Response docd = Jsoup.connect("https://webrater.infinityagents.com/start.do") 
       .cookie("JSESSIONID", sessionID) 
       .referrer("https://webrater.infinityagents.com/start.do") 
       .followRedirects(true) 
       .execute();  

예외적으로 나는 인증서 문제가 있다고 생각합니다. 다음

  1. 사이트에서 SSL 인증서를 해보 :이 diffierent 방법으로 할 수 있습니다. 가장 쉬운 브라우저를 통해 것입니다. 대부분의 브라우저에서 UR1은 인증서 세부 사항을 표시합니다. 선택보기 인증서를 클릭 할 수 있습니다. 그런 다음 IE & 크롬을 사용하는 경우 세부 정보 탭으로 이동하여 "파일로 복사"버튼을 클릭하십시오. Firefox에서 다시 세부 정보 탭으로 이동하여 "내보내기"버튼을 클릭하십시오. 이렇게하면 .cer (Crypto Shell Extension) 파일이 제공됩니다. 또한 브라우저 didnt 한 도움이 당신이 명령 openssl s_client -connect {HOSTNAME}:{PORT} -showcerts을 사용하여 인증서를 얻을 수 OpenSSL를 사용할 수 있는지 (나는이 시도 havent 한))

  2. 만들기 .jks는 파일 :. 이제 .cer 파일로 변환해야합니다. jks (Java Key Store) 파일. Java는 keytool.exe 파일과 함께 제공됩니다. jdk_folder \ bin 또는 jre_folder \ bin에서 찾을 수 있습니다. 명령 keytool -import -v -file path_to_yourfile.cer -keystore path_to_your.jks -storepass anypassword

  3. 에게 설정 정보 javax.net.ssl.trustStore 속성을 실행하여 아래와 같이이 시스템 속성을 설정 jsoup 호출하기 전에.

    System.setProperty("javax.net.ssl.trustStore", "path_to_your.jks"); Connection.Response docd = Jsoup.connect("https://webrater.infinityagents.com/start.do") .cookie("JSESSIONID", sessionID) .referrer("https://webrater.infinityagents.com/start.do") .followRedirects(true) .execute();

+0

아니, 403 에러가 없다. 이 에러가 발생했습니다 ..... javax.net.ssl.SSLHandshakeException : sun.security.validator.ValidatorException : PKIX 경로 구축 실패 : sun.security.provider.certpath.SunCertPathBuilderException : 유효한 인증 경로를 찾을 수 없습니다. 요구 된 targetjavax.net.ssl.SSLHandshakeException : sun.security.validator.ValidatorException : PKIX 패스 구축 실패 : sun.security.provider.certpath.SunCertPathBuilderException : 요청 된 타겟에 대한 유효한 인증 경로를 찾을 수 없습니다. – user3635559

+0

답변을 업데이트했습니다. 희망이 도움이됩니다. :) –

+0

나는 이것을했다. 나의 cacerts 파일은 jre/lib/security에있다.내가 경로를 부여했지만 지금은이 예외가 발생합니다 ............. javax.net.ssl.SSLHandshakeException : sun.security.validator.ValidatorException : PKIX path building failed : sun. security.provider.certpath.SunCertPathBuilderException : 요청한 targetjavax.net.ssl.SSLHandshakeException에 대한 유효한 인증 경로를 찾을 수 없습니다. sun.security.validator.ValidatorException : PKIX 경로 구축에 실패했습니다. sun.security.provider.certpath.SunCertPathBuilderException : 찾을 수 없습니다. 유효한 인증 경로를 요청한 대상 – user3635559

관련 문제