2015-12-03 2 views
0

помогите мне с входом jsoup, мне нужно войти в систему, а затем перенаправить с страницы входа на другую страницу с сохраненной сессией.java.io.IOException: 403 ошибка загрузки URL-адреса jsoup login

public void parseXhtml() throws IOException{ 
     String sessionID=null; 
     Map<String, String> cookies = new HashMap<String, String>(); 
     cookies.put("login", "login"); 
     cookies.put("password", "password"); 
     Connection conn=Jsoup.connect("http://localhost:8080/dir/login.xhtml"); 

     Connection.Response res = Jsoup 
       .connect("http://localhost:8080/dir/login.xhtml") 
       .data(cookies) 
       .execute(); 
     res = Jsoup.connect("http://localhost:8080/dir/dir/index.xhtml") 
       .cookie("JSESSIONID", res.cookies().get("JSESSIONID")) 
       .method(Method.GET) 
       .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36") 
       .execute(); 

     Document doc = res.parse(); 
     System.out.println(doc.html()); 
     sessionID = res.cookie("JSESSIONID"); 

     Document docu = Jsoup.connect("http://localhost:8080/dir/dir/index.xhtml") 
          .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36") 
          .cookie("JSESSIONID", res.cookies().get("JSESSIONID")) 
          .method(Connection.Method.GET) 
          .get(); 

он бросает НИЖЕ за исключением

java.io.IOException: 403 Ошибка загрузки URL http://localhost:8080/dir/dir/index.xhtml

если я делаю, как [Sending POST request with username and password and save session cookie оно проливает же исключение.

+0

@BalusC, если я делаю как http://stackoverflow.com/questions/7206133/sending-post -request-and-save-cookies/7206268 # 7206268 есть такая же ошибка. – DoctorDo

+0

Вам нужно изменить данные, если ваша форма html отличается. Затем это применимо как duplciate: http://stackoverflow.com/q/12175763 – BalusC

+0

@BalusC, мне нужно логически войти в систему и получить sessionId.Как я могу получить содержимое необходимой страницы? пожалуйста, помогите – DoctorDo

ответ

0
ExternalContext ec=FacesContext.getCurrentInstance().getExternalContext(); 
     HttpServletRequest req=(HttpServletRequest) ec.getRequest(); 
     HttpSession sess=(HttpSession) ec.getSession(true); 
     String url = req.getRequestURL().append(";jsessionid=").append(sess.getId()).toString(); 

     ec.setRequest("http://localhost:8080/dir/dir/index.xhtml"); 
     HttpServletRequest req2=(HttpServletRequest) ec.getRequest(); 
     String url2 = req2.getRequestURL().append(";jsessionid=").append(sess.getId()).toString(); 
     Document doc2=Jsoup.connect(url2).get(); 
     System.out.println(doc2.html()); 

Наконец я получил его, я не знаю, правильно ли это, но работает

Смежные вопросы