Jsoup Cookies для очистки HTTPS

Я экспериментирую с этим сайтом, чтобы собрать свое имя пользователя на странице приветствия, чтобы узнать Jsoup и Android. Используя следующий код

Connection.Response res = Jsoup.connect("http://www.mikeportnoy.com/forum/login.aspx") .data("ctl00$ContentPlaceHolder1$ctl00$Login1$UserName", "username", "ctl00$ContentPlaceHolder1$ctl00$Login1$Password", "password") .method(Method.POST) .execute(); String sessionId = res.cookie(".ASPXAUTH"); Document doc2 = Jsoup.connect("http://www.mikeportnoy.com/forum/default.aspx") .cookie(".ASPXAUTH", sessionId) .get(); 

Мой файл cookie (.ASPXAUTH) всегда заканчивается NULL. Если я удалю этот файл cookie в веб-браузере, я потеряю соединение. Поэтому я уверен, что это правильный файл cookie. Кроме того, если я изменю код

 .cookie(".ASPXAUTH", "jkaldfjjfasldjf") Using the correct values of course 

Я могу очистить свое имя пользователя на этой странице. Это также заставляет меня думать, что у меня есть правильный cookie. Итак, как получилось, что мой cookie появился Null? Неверные поля имени пользователя и пароля? Что-то другое?

Благодарю.

Я знаю, что я немного опоздал на 10 месяцев. Но хороший вариант использования Jsoup – использовать этот простой fragment кода:

 //This will get you the response. Response res = Jsoup .connect("url") .data("loginField", "[email protected]", "passField", "pass1234") .method(Method.POST) .execute(); //This will get you cookies Map cookies = res.cookies(); //And this is the easieste way I've found to remain in session Documente doc = Jsoup.connect("url").cookies(cookies).get(); 

Хотя у меня все еще есть проблемы с подключением к НЕКОТОРЫМ сайтам, я подключаюсь ко многим из них с одним и тем же основным кодом. О, и до того, как я забуду. Что я понял, моя проблема в том, что это SSL-сертификаты. Вы должны правильно управлять ими так, как я еще не совсем понял.

Я всегда делаю это в два этапа (как обычный человек),

  1. Прочитайте страницу входа (GET, прочитайте cookies)
  2. Отправить форму и cookies (по почте, без манипуляции с печеньем)

Пример:

 Connection.Response response = Jsoup.connect("http://www.mikeportnoy.com/forum/login.aspx") .method(Connection.Method.GET) .execute(); response = Jsoup.connect("http://www.mikeportnoy.com/forum/login.aspx") .data("ctl00$ContentPlaceHolder1$ctl00$Login1$UserName", "username") .data("ctl00$ContentPlaceHolder1$ctl00$Login1$Password", "password") .cookies(response.cookies()) .method(Connection.Method.POST) .execute(); Document homePage = Jsoup.connect("http://www.mikeportnoy.com/forum/default.aspx") .cookies(response.cookies()) .get(); 

И всегда устанавливайте cookies из запроса previuos для последующего использования

  .cookies(response.cookies()) 

SSL здесь не важен. Если у вас возникли проблемы с certifcates, тогда выполните этот метод для игнорирования SSL.

 public static void trustEveryone() { try { HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() { public boolean verify(String hostname, SSLSession session) { return true; } }); SSLContext context = SSLContext.getInstance("TLS"); context.init(null, new X509TrustManager[]{new X509TrustManager() { public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; } }}, new SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory()); } catch (Exception e) { // should never happen e.printStackTrace(); } } 

Что делать, если вы пытаетесь извлечь и передать все cookies, не предполагая ничего подобного: Отправка запроса POST с именем пользователя и паролем и сохранение сеанса cookie

Если у вас все еще есть проблемы, попробуйте обратиться к этому: Проблемы с передачей файлов cookie в GET-запрос (после POST)

  • Что такое файл .episode ..?
  • VBA - проблемы с очисткой HTML
  • Чтение и запись файла на streamingAssetsPath
  • Для чего же Spring Framework?
  • Возможно, для многих доменных имен общий IP-адрес?
  • Получить веб-страницу, включая контент AJAX
  • Онлайн-клиент HTTP
  • Когда использовать Var вместо функции?
  • Почему веб-страницы иногда появляются как обычный HTML перед обновлением
  • Как подключиться через HTTPS с помощью Jsoup?
  • Как заполнить форму Jsoup?
  • Давайте будем гением компьютера.