Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

POST авторизация с использованием JSOUP - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Заполнение ListView в AsyncTask http://www.cyberforum.ru/android-dev/thread1411813.html
Нужно заполнить ListView картинками, которые скачиваются в AsyncTask с помощью Picasso. Картинки скачиваются нормально, ArrayList и ArrayAdapter заполняются, но при adapter.notifyDataSetChanged(); в...
Программирование Android Преобразование EditText в Double Здравствуйте, понемногу изучаю андроид и вот уперся в проблему, точнее в не знание. Есть EditText в нем указал что можно вводить только десятичные числа. А вот теперь сама проблема как правильно... http://www.cyberforum.ru/android-dev/thread1411782.html
Android Studio. Установка приложения на эмулятор. Application Installation Failed Программирование Android
С недавних пор перестали устанавливаться на эмулятор абсолютно все мои приложения. Даже только что созданный пустой проект не устанавливается. Все время вываливается ошибка на скрине. Как исправить...
Как сохранять добавленное в ListView поле? Программирование Android
День добрый. Подскажите как можно сохранять добавленное поле , что бы в следующий раз при запуске приложения оно было и добавлять к имеющимся уже public class MainActivity extends Activity { ...
Программирование Android Обработка нажатия на RadioButton http://www.cyberforum.ru/android-dev/thread1411653.html
Постигаю андроид. Не могу разобраться со свичем. EditText принимает число, сохранил его, дальше выбираю RadioBatton и нифига не происходит) public void onClick(View view) { ...
Программирование Android Изменять изображение в зависимости от количества нажатий Всем привет , помогите нубу) Как сделать чтобы , кликая на кнопку, допустим 100 раз появилось изображение ,200 раз другое public class MainActivity extends ActionBarActivity { public int... подробнее

Показать сообщение отдельно
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 254

POST авторизация с использованием JSOUP - Программирование Android

04.04.2015, 15:17. Просмотров 2794. Ответов 16
Метки (Все метки)

Вот собственно и у меня дедлок случился))

Ситуация следующая, пытаюсь залогиниться на joy.reactor.cc


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
package com.noxx.joyreactor.Net;
 
 
import android.app.Activity;
import android.os.AsyncTask;
import android.util.Log;
 
import com.noxx.joyreactor.Global;
 
import org.jsoup.Connection;
import org.jsoup.helper.HttpConnection;
import org.jsoup.nodes.Document;
 
import java.io.IOException;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class Auth {
    Activity activity;
    Global global;
    int DEFAULT_TIMEOUT = 7000;
 
    public Auth(Activity activity) {
        this.activity = activity;
        this.global = (Global) activity.getApplication();
    }
 
    public void doAuth() {
        new AuthTask().execute();
    }
 
    void makeAuth() {
        Document doc = null;
        try {
 
 
            String loginURL = "http://joy.reactor.cc" + "/login";
            String itemURL = "http://joy.reactor.cc";
            String useragent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36";
            String login = "login";
            String pass = "pass";
 
            //получаем страницу входа
            Connection.Response response1 = HttpConnection.connect(loginURL)
                    .ignoreHttpErrors(true)
                    .userAgent(useragent)
                    .execute();
            //цапаем оттуда токен
            String token = "";
            Matcher matcher = Pattern.compile("token = '(.*)'").matcher(response1.parse().select("html").html());
            if (matcher.find()) {
                token = matcher.group(1);
                Log.d("token", token);
            }
            for (Map.Entry<String, String> cookie : response1.cookies().entrySet()) {
                Log.d("cookie1", cookie.getKey() + " : " + cookie.getValue());
            }
            for (Map.Entry<String, String> head : response1.headers().entrySet()) {
                Log.d("headers1", head.getKey() + " : " + head.getValue());
            }
 
            //делаем пост запрос
            Connection connection2 = HttpConnection.connect(loginURL).cookies(response1.cookies())
                    .header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
                    .header("Accept-Encoding", "gzip, deflate")
                    .header("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4")
                    .header("Cache-Control", "max-age=0")
                    .header("Connection", "keep-alive")
                    .header("Content-Length", "114")
                    .header("Content-Type", "application/x-www-form-urlencoded")
                    .header("Host", "joy.reactor.cc")
                    .header("Origin", "http://joy.reactor.cc")
                    .header("Referer", "http://joy.reactor.cc/login")
                    .data("signin[username]", login)
                    .data("signin[password]", pass)
                    .data("signin[_csrf_token]", token)
                    .userAgent(useragent)
                    .method(Connection.Method.POST)
                    .followRedirects(true);
 
            Connection.Response response2 = connection2.execute();
            for (Map.Entry<String, String> cookie : response2.cookies().entrySet()) {
                Log.d("cookie2", cookie.getKey() + " : " + cookie.getValue());
            }
            for (Map.Entry<String, String> head : response2.headers().entrySet()) {
                Log.d("headers2", head.getKey() + " : " + head.getValue());
            }
 
            // получаем страницу (уже должны быть авторизованы
            Connection connection3 = HttpConnection.connect(itemURL + "/all").userAgent(useragent).cookies(response2.cookies());
            Connection.Response response3 = connection3.execute();
            for (Map.Entry<String, String> cookie : response3.cookies().entrySet()) {
                Log.d("cookie3", cookie.getKey() + " : " + cookie.getValue());
            }
            for (Map.Entry<String, String> head : response3.headers().entrySet()) {
                Log.d("headers3", head.getKey() + " : " + head.getValue());
            }
            Document tt = response3.parse();
            String t = tt.select(".login").html();
            System.out.println(t);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
 
    class AuthTask extends AsyncTask<Void, Void, Void> {
 
        @Override
        protected Void doInBackground(Void... params) {
            makeAuth();
            return null;
        }
    }
}


в логах имеем

Кликните здесь для просмотра всего текста
04-03 19:03:12.676 26529-26553/com.noxx.joyreactor D/token﹕ 37293b9efea7edb5a4a5b7d950bc46dc
04-03 19:03:12.676 26529-26553/com.noxx.joyreactor D/cookie1﹕ joyreactor : ver305319a4a97f6b9f5a285ae6834fd86ff:8f564790953b1891ba64b6b0c86f8d0f36435f0f
04-03 19:03:12.676 26529-26553/com.noxx.joyreactor D/headers1﹕ Cache-Control : private
04-03 19:03:12.676 26529-26553/com.noxx.joyreactor D/headers1﹕ Connection : keep-alive
04-03 19:03:12.676 26529-26553/com.noxx.joyreactor D/headers1﹕ Content-Encoding : gzip
04-03 19:03:12.676 26529-26553/com.noxx.joyreactor D/headers1﹕ Content-Type : text/html; charset=utf-8
04-03 19:03:12.676 26529-26553/com.noxx.joyreactor D/headers1﹕ Date : Fri, 03 Apr 2015 16:03:11 GMT
04-03 19:03:12.676 26529-26553/com.noxx.joyreactor D/headers1﹕ Server : nginx/1.6.2
04-03 19:03:12.676 26529-26553/com.noxx.joyreactor D/headers1﹕ Transfer-Encoding : chunked
04-03 19:03:12.676 26529-26553/com.noxx.joyreactor D/headers1﹕ Vary : Accept-Encoding
04-03 19:03:12.676 26529-26553/com.noxx.joyreactor D/headers1﹕ X-Android-Received-Millis : 1428076991209
04-03 19:03:12.676 26529-26553/com.noxx.joyreactor D/headers1﹕ X-Android-Response-Source : NETWORK 401
04-03 19:03:12.676 26529-26553/com.noxx.joyreactor D/headers1﹕ X-Android-Sent-Millis : 1428076990976
04-03 19:03:12.676 26529-26553/com.noxx.joyreactor D/headers1﹕ X-Powered-By : PHP/5.4.37

04-03 19:03:13.003 26529-26553/com.noxx.joyreactor D/headers2﹕ Cache-Control : private
04-03 19:03:13.003 26529-26553/com.noxx.joyreactor D/headers2﹕ Connection : keep-alive
04-03 19:03:13.003 26529-26553/com.noxx.joyreactor D/headers2﹕ Content-Encoding : gzip
04-03 19:03:13.003 26529-26553/com.noxx.joyreactor D/headers2﹕ Content-Type : text/html; charset=utf-8
04-03 19:03:13.003 26529-26553/com.noxx.joyreactor D/headers2﹕ Date : Fri, 03 Apr 2015 16:03:13 GMT
04-03 19:03:13.003 26529-26553/com.noxx.joyreactor D/headers2﹕ Server : nginx/1.6.2
04-03 19:03:13.003 26529-26553/com.noxx.joyreactor D/headers2﹕ Transfer-Encoding : chunked
04-03 19:03:13.003 26529-26553/com.noxx.joyreactor D/headers2﹕ Vary : Accept-Encoding
04-03 19:03:13.003 26529-26553/com.noxx.joyreactor D/headers2﹕ X-Android-Received-Millis : 1428076992941
04-03 19:03:13.003 26529-26553/com.noxx.joyreactor D/headers2﹕ X-Android-Response-Source : NETWORK 200
04-03 19:03:13.003 26529-26553/com.noxx.joyreactor D/headers2﹕ X-Android-Sent-Millis : 1428076992689
04-03 19:03:13.003 26529-26553/com.noxx.joyreactor D/headers2﹕ X-Powered-By : PHP/5.4.37

04-03 19:03:13.403 26529-26553/com.noxx.joyreactor D/cookie3﹕ joyreactor : ver37016d7b2fd70acb1f79bc904751a05d6:9b9dd710f5dc9d4ac948fe03aaa31ce1385be0a5
04-03 19:03:13.444 26529-26553/com.noxx.joyreactor D/headers3﹕ Cache-Control : private
04-03 19:03:13.444 26529-26553/com.noxx.joyreactor D/headers3﹕ Connection : keep-alive
04-03 19:03:13.444 26529-26553/com.noxx.joyreactor D/headers3﹕ Content-Encoding : gzip
04-03 19:03:13.444 26529-26553/com.noxx.joyreactor D/headers3﹕ Content-Type : text/html; charset=utf-8
04-03 19:03:13.444 26529-26553/com.noxx.joyreactor D/headers3﹕ Date : Fri, 03 Apr 2015 16:03:13 GMT
04-03 19:03:13.444 26529-26553/com.noxx.joyreactor D/headers3﹕ Server : nginx/1.6.2
04-03 19:03:13.467 26529-26553/com.noxx.joyreactor D/headers3﹕ Transfer-Encoding : chunked
04-03 19:03:13.467 26529-26553/com.noxx.joyreactor D/headers3﹕ Vary : Accept-Encoding
04-03 19:03:13.467 26529-26553/com.noxx.joyreactor D/headers3﹕ X-Android-Received-Millis : 1428076993259
04-03 19:03:13.467 26529-26553/com.noxx.joyreactor D/headers3﹕ X-Android-Response-Source : NETWORK 200
04-03 19:03:13.467 26529-26553/com.noxx.joyreactor D/headers3﹕ X-Android-Sent-Millis : 1428076993004
04-03 19:03:13.467 26529-26553/com.noxx.joyreactor D/headers3﹕ X-Powered-By : PHP/5.4.37

04-03 19:03:13.657 26529-26553/com.noxx.joyreactor I/System.out﹕ <a href="/register">Регистрация</a>
04-03 19:03:13.657 26529-26553/com.noxx.joyreactor I/System.out﹕ <a href="/login">Вход</a>


результатом будут две последние строки, содержащие логин (в любой из них)


Что делаю не так? уже 4й день завис на этом

Добавлено через 9 минут
Получение страницы входа

Кликните здесь для просмотра всего текста
General
Remote Address:50.7.136.178:80
Request URL:http://joy.reactor.cc/login
Request Method:GET
Status Code:401 Unauthorized

Response Headers
Cache-Controlrivate
Connection:keep-alive
Content-Encoding:gzip
Content-Type:text/html; charset=utf-8
Date:Fri, 03 Apr 2015 16:13:55 GMT
Server:nginx/1.6.2
Transfer-Encoding:chunked
Vary:Accept-Encoding
X-Powered-By:PHP/5.4.37

Request Headers
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Connection:keep-alive
Cookie:joyreactor=ver31e757874556261564de818ca53f1ae24:6ab955bd16ab4a4feb7cb6b0e3a929a5d6398557
Host:joy.reactor.cc
Referer:http://joy.reactor.cc/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36


POST запрос авторизации

Кликните здесь для просмотра всего текста
General
Remote Address:50.7.136.178:80
Request URL:http://joy.reactor.cc/login
Request Method:POST
Status Code:302 Found

Response Headers
Connection:keep-alive
Content-Encoding:gzip
Content-Type:text/html; charset=utf-8
Date:Fri, 03 Apr 2015 16:15:35 GMT
Location:http://joy.reactor.cc/
Server:nginx/1.6.2
Set-Cookie:joyreactor=ver3c1eea151beeddca27c28749be16b3b17:240e601ecb17d1888dd936aacea17655a0e80ddf; expires=Mon, 06-Apr-2015 16:15:35 GMT; path=/; domain=.joy.reactor.cc; httponly
Set-Cookie:remember=f94b3b22e111f911f66de52c9fa2e257; expires=Sat, 18-Apr-2015 16:15:35 GMT; path=/; domain=.joy.reactor.cc; httponly
Transfer-Encoding:chunked
Vary:Accept-Encoding
X-Powered-By:PHP/5.4.37

Request Headers
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate
Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:max-age=0
Connection:keep-alive
Content-Length:138
Content-Type:application/x-www-form-urlencoded
Cookie:joyreactor=ver31e757874556261564de818ca53f1ae24:6ab955bd16ab4a4feb7cb6b0e3a929a5d6398557
Host:joy.reactor.cc
Origin:http://joy.reactor.cc
Referer:http://joy.reactor.cc/login
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36

Form Data
signin[username]:$@#$@#
signin[password]:$@#$@#
signin[remember]:on
signin[_csrf_token]:b53e85f61369b60fb247687a9e96b43c


Страница после авторизации

Кликните здесь для просмотра всего текста
General
Remote Address:50.7.136.178:80
Request URL:http://joy.reactor.cc/
Request Method:GET
Status Code:200 OK

Response Headers
Cache-Controlrivate
Connection:keep-alive
Content-Encoding:gzip
Content-Type:text/html; charset=utf-8
Date:Fri, 03 Apr 2015 16:15:36 GMT
Server:nginx/1.6.2
Transfer-Encoding:chunked
Vary:Accept-Encoding
X-Powered-By:PHP/5.4.37

Request Headers
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:max-age=0
Connection:keep-alive
Cookie:joyreactor=ver3c1eea151beeddca27c28749be16b3b17:240e601ecb17d1888dd936aacea17655a0e80ddf; remember=f94b3b22e111f911f66de52c9fa2e257
Host:joy.reactor.cc
Referer:http://joy.reactor.cc/login
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36


Добавлено через 19 часов 58 минут
Путем болей и мучений нашел в чем дело, на 2 response мне возвращается страница, содержащая кое что интересное

"csrf token: CSRF attack detected."

Копаю далее
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru