Jsoup и готовить ie - я не могу войти на все дочерние сайты - PullRequest
0 голосов
/ 12 февраля 2020

У меня проблема с хранением повара ie в Jsoup. Я зашел на основной сайт через JSON, здесь все нормально. У меня проблема, когда я хочу go на следующий дочерний сайт, я ставлю того же повара ie, и это не работает. В моей консоли я вижу, что у меня есть html сайт до входа в систему. Есть идеи, что я должен изменить?

public class MyBenefit {
    final static String USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15";
    final static String LOGIN_FORM_URL = "https://system.mybenefit.pl/mybenefit/login.html";
    final static String LOGIN_ACTION_URL = "https://system.mybenefit.pl/mybenefit/login/by_email";
    final static String URL = "https://system.mybenefit.pl/mybenefit/benefit-login-dispatcher.html";
    final static String URLQUERY = "https://system.mybenefit.pl/mybenefit/global-search.html?query=";
    final static String USERNAME = "xxx";
    final static String PASSWORD = "xxx";

    public static void main(String[] args) {

        try {
            Connection.Response loginForm = Jsoup.connect(LOGIN_FORM_URL)
                    .method(Connection.Method.GET)
                    .userAgent(USER_AGENT)
                    .execute();

            //here I create json, because json is required to login
            JsonBuilderFactory jsonBuilderFactory = Json.createBuilderFactory(Collections.EMPTY_MAP);
            JsonObject jsonObject = jsonBuilderFactory.createObjectBuilder()
                    .add("password", PASSWORD)
                    .add("captcha", "")
                    .add("lang", "pl")
                    .add("email", USERNAME).build();


            HashMap<String, String> cookies = new HashMap<>(loginForm.cookies());

            Connection.Response homePage = Jsoup.connect(LOGIN_ACTION_URL)
                    .cookies(cookies)
                    .ignoreContentType(true)
                    .requestBody(jsonObject.toString())
                    .method(Connection.Method.POST)
                    .userAgent(USER_AGENT)
                    .execute();

            //here I get cookie after logg
            String sessionID = homePage.cookie("BENEFIT_SESSIONID");

            //this connection is working
            Connection.Response afterLogg = Jsoup.connect(URL)
                    .cookie("BENEFIT_SESSIONID", sessionID)
                    .execute();

            Document document = afterLogg.parse();

            //this connection is NOT workingg good, I am not logged on website
            Connection.Response test = Jsoup.connect(URLQUERY)
                    .cookie("BENEFIT_SESSIONID", sessionID)
                    .execute();

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


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

Я проверил инструменты разработчика в Firefox, и URL-адрес страницы и URLQUERY страницы имеют одинаковую кухню ie. Я посылаю несколько фотографий об этом. cook ie после входа в систему по URL cook ie по URLQUERY

...