2016-08-04 5 views
1

У меня возникла проблема со следующим методом тестирования для аутентификации на сайте университета. Я использую Jsoup, и я не могу получить файлы cookie (jsessionid) для входа. Метод заключается в следующем:Как установить jsessionid cookie с jsoup?

public static void Authentication() { 

    String strURL = "https://www.studenti.ict.uniba.it/esse3/auth/Logon.do"; 
    String strUserId = "prova"; 
    String strPasword = "prova"; 

    String authString = strUserId + ":" + strPasword; 

    String encodedString = new String(Base64.encodeBase64(authString.getBytes())); 

    try{ 

     Response response = Jsoup.connect(strURL) 
       .header("Authorization", "Basic " + encodedString) 
       .method(org.jsoup.Connection.Method.GET) 
       .timeout(30000) 
       .execute(); 

     System.out.println(response.parse()); 

     System.out.println("Autenticato"); 

    }catch (IOException e){ 
     e.printStackTrace(); 
    } 
} 

ответ

1

Вы можете получить печенье, создавая еще один запрос на дом сайте.

package com.github.davidepastore.stackoverflow38768839; 

import java.io.IOException; 

import org.jsoup.Connection.Response; 
import org.jsoup.Jsoup; 

/** 
* Stackoverflow 38768839 answer. 
* 
*/ 
public class App { 

    private static final String COOKIE_NAME = "JSESSIONID"; 

    public static void main(String[] args) throws IOException { 
     // Step 1 - Get the cookie 
     String homeURL = "https://www.studenti.ict.uniba.it/esse3/Home.do"; 
     Response response = Jsoup.connect(homeURL).execute(); 
     String jsessionid = response.cookie(COOKIE_NAME); 
     System.out.println(COOKIE_NAME + " cookie: " + jsessionid); 

     // Step 2 - Try to login 
     String strURL = "https://www.studenti.ict.uniba.it/esse3/auth/Logon.do"; 
     String strUserId = "prova"; 
     String strPasword = "prova"; 

     String authString = strUserId + ":" + strPasword; 

     String encodedString = new String(Base64.encodeBase64(authString 
       .getBytes())); 

     try { 

      response = Jsoup.connect(strURL) 
        .header("Authorization", "Basic " + encodedString) 
        .cookie(COOKIE_NAME, jsessionid) 
        .method(org.jsoup.Connection.Method.GET).timeout(30000) 
        .execute(); 

      System.out.println(response.parse()); 

      System.out.println("Autenticato"); 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+0

спасибо. Помощь для файла cookie была очень хорошей. Теперь проблема в том, что он не входит в систему и дает мне ошибку 401, хотя учетные данные доступа верны. Ошибка в функции «выполнить». –

+0

@VincEnzo Дело в том, что я не могу проверить его, если у меня нет учетных данных. –

+0

Вы можете оставить мне свой адрес электронной почты? Вы отправляете учетные данные для входа –

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

  • Нет связанных вопросов^_^