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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 5.00
xpresiq
0 / 0 / 0
Регистрация: 06.12.2010
Сообщений: 25
#1

Авторизация на сайте с клиента на андроиде - Android

07.05.2013, 23:38. Просмотров 1957. Ответов 9
Метки нет (Все метки)

Решил написать для себя небольшое приложения для просмотра баланса у интернет-провайдера.
с адроидом знаком меньше 2х недель, поэтому палками прошу не бить и ногами не пинать.
встал такой вопрос: не могу преодолеть авторизацию. через браузер приблизительно выглядит все так-открыл страницу, там всего два поля с логином и паролем, после чего тебя перенаправляет в свой кабинет, вроде все просто.
теперь вопрос, как можно реализовать вход в свой кабинет, т.е. не через *у (получая исходник, считывать где поля, вставлять введенный текст и переходить), а на прямую передать лог и пасс. гугл читал, много слов-мало дела, точнее я понял нужно использовать POST и Get запросы, это все что я понял, нигде не нашел элементарно примера, мб кто подскажет как это проще всего сделать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
07.05.2013, 23:47     Авторизация на сайте с клиента на андроиде #2
нужно по сайту смотреть как на нем реализована авторизация.

Добавлено через 1 минуту
сервер должен поддерживать авторизация Get или Post запросом чтобы вы могли их применить.
xpresiq
0 / 0 / 0
Регистрация: 06.12.2010
Сообщений: 25
07.05.2013, 23:48  [ТС]     Авторизация на сайте с клиента на андроиде #3
и как посмотреть, какие запросы поддерживает тот или иной сайт?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
07.05.2013, 23:51     Авторизация на сайте с клиента на андроиде #4
я не специалист, но вроде по коду сайта, или перехватом запросов, по адресной строке в браузере при логине.
а вообще, там где это нужно, выкладывают документацию с API-ем для интеграции.
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
08.05.2013, 20:37     Авторизация на сайте с клиента на андроиде #5
xpresiq, используй Live HTTP Headers для Mozilla Firefox или подобные расширения для других браузеров также есть Fiddler.
Если по серьезней инструмент нужен то Wireshark. Ну или изучай HTML разметку а именно все что отправляется в тэге
HTML5
1
<form ...> ... </form>
бывает что нужно отправлять не все так как принимающий скрипт не все проверяет.

Цитата Сообщение от V0v1k Посмотреть сообщение
а вообще, там где это нужно, выкладывают документацию с API-ем для интеграции.
врятли интернет-провайдер предоставит подобное API.

Добавлено через 10 минут
Да кстати чтобы облегчить решение данной задачи используй библиотеку Jsoup после того как определишь что отправлять серверу. И еще обычно сервер проверяет кукисы а в тэге
HTML5
1
<form>
ты их не найдешь их можно легко получить с помощью Jsoup вообще если ты раньше не писал подобный софт будет конечно сложно.
xpresiq
0 / 0 / 0
Регистрация: 06.12.2010
Сообщений: 25
09.05.2013, 23:20  [ТС]     Авторизация на сайте с клиента на андроиде #6
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<form action=cgi.exe?function=is_login method=post>
<input type="hidden" name="Lang" value="2">
 
 
<table border="1" cellspacing="0" cellpadding="2" class="ystyle">
        <TR>
                <td class=dark width=50%>&nbsp;Логин</TD>
                <td class=light width=50%>&nbsp;<input name=mobnum size="15" TYPE="text" maxlength="50" value="" onkeypress="if(event.keyCode==13){ document.forms[0].Password.focus();return false;}" tabindex=1></TD>
        </TR>
        <TR>
                <td class=dark>&nbsp;Пароль</td>
                <td class=light>&nbsp;
 
<!-- <input type="password" maxlength="20" name=Password size="15" value="" tabindex=2></TD> -->
<input type="password" maxlength="40" name=Password size="15" value="" tabindex=2></TD> 
        </TR>
        
        
</TABLE>
<br>
<input type=image src="../images/issa/ok.gif" alt="ok" width="50" height="24" border="0" tabindex=5>
</form>
вообщем я так понимаю через пост запросы все идет.

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
                           HttpClient httpclient = new DefaultHttpClient();
                    HttpPost httppost = new HttpPost("мойсайт");
                    try {
                        
                        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
 
                        nameValuePairs.add(new BasicNameValuePair("mobnum", ed1.getText().toString()));
 
                        nameValuePairs.add(new BasicNameValuePair("Password", ed2.getText().toString()));
                        
 
                        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
 
 
                        HttpResponse response = httpclient.execute(httppost);
                        wb1.loadUrl("след страница после авторизации"); //здесь хочу посмотреть прошла ли авторизация
 
                        
 
                    } catch (ClientProtocolException e) {
 
                        // TODO Auto-generated catch block
 
                    } catch (IOException e) {
 
                        // TODO Auto-generated catch block
 
                    }
правильно ли посылаю пост запрос? Просто при просмотре след страницы(см. в коде) получаю не авторизированую страницу.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
09.05.2013, 23:32     Авторизация на сайте с клиента на андроиде #7
пробовали к ссылке прибавлять cgi.exe?function=is_login ?
xpresiq
0 / 0 / 0
Регистрация: 06.12.2010
Сообщений: 25
09.05.2013, 23:39  [ТС]     Авторизация на сайте с клиента на андроиде #8
да, конено, как уже не пробывал.. есть одно но, то что показывает в webview, а именно страницу что время пользование вышло, попробуйте заново войти, а не то что имя пользователя введено неверно или ту же страницу авторизации
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
09.05.2013, 23:43     Авторизация на сайте с клиента на андроиде #9
воспользуйтесь тулзами которые c4sp3r посоветовал и проанализируйте запросы которые браузер посылает.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2013, 11:35     Авторизация на сайте с клиента на андроиде
Еще ссылки по теме:

Смена бекграунда на андроиде Android
Android Авторизация на сайте
Масштабирование компонентов на андроиде Android
Android Авторизация на сайте
Защита приложения на Андроиде Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
11.05.2013, 11:35     Авторизация на сайте с клиента на андроиде #10
Цитата Сообщение от xpresiq Посмотреть сообщение
вообщем я так понимаю через пост запросы все идет.
да.

Цитата Сообщение от xpresiq Посмотреть сообщение
правильно ли посылаю пост запрос?
Скорее всего нет так как нужно еще распарсить куки и параметр Lang тоже отправляется принимающему скрипту (он конечно может и не проверятся) также может проверятся еще и referer. Так что лучше ставь Live HTTP Headers.

Цитата Сообщение от xpresiq Посмотреть сообщение
Просто при просмотре след страницы(см. в коде) получаю не авторизированую страницу.
Код
wb1.loadUrl("след страница после авторизации"); //здесь хочу посмотреть прошла ли авторизация
тут просто загружается страница которая указана при этом у тебя не передаются куки а без них ты всегда будешь не авторизован да и WebView не совсем подходит для таких проверок лучше читать непосредственно ответ сервера.
Yandex
Объявления
11.05.2013, 11:35     Авторизация на сайте с клиента на андроиде
Ответ Создать тему
Опции темы

Текущее время: 08:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru