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

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

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

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

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

Решил написать для себя небольшое приложения для просмотра баланса у интернет-провайдера.
с адроидом знаком меньше 2х недель, поэтому палками прошу не бить и ногами не пинать.
встал такой вопрос: не могу преодолеть авторизацию. через браузер приблизительно выглядит все так-открыл страницу, там всего два поля с логином и паролем, после чего тебя перенаправляет в свой кабинет, вроде все просто.
теперь вопрос, как можно реализовать вход в свой кабинет, т.е. не через *у (получая исходник, считывать где поля, вставлять введенный текст и переходить), а на прямую передать лог и пасс. гугл читал, много слов-мало дела, точнее я понял нужно использовать POST и Get запросы, это все что я понял, нигде не нашел элементарно примера, мб кто подскажет как это проще всего сделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2013, 23:38
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Авторизация на сайте с клиента на андроиде (Программирование Android):

Авторизация на сайте - Программирование Android
Всем здрасьте. Входе разработки клиента для сайта возникла следующая проблемка: Есть форма с авторизацией на сайте(2 textedit'a и...

Авторизация на сайте - Программирование Android
Здравствуйте. Есть две страницы: 1. login.php 2. page.php Если я не авторизован, естественно кидает на страницу 1. ...

Авторизация на сайте - Программирование Android
Подскажите что я не так делаю при авторизации на сайте. Ни как не разберусь с куками. есть сайт который при вводе пароля отправляет вот...

Авторизация на сайте - Программирование Android
Здравствуйте. Я еще новичок в этом деле и поэтому никак не могу понять как пройти авторизацию на сайте. Хочу приложение сделать для сайта,...

Авторизация на сайте: "java.lang.Exception: http error : 401" - Программирование Android
Добрый день. Подскажите пожалуйста, что не так делаю. Отправляю запрос на авторизацию к серверу, а он мне в ответ 401 код ошибки (error =...

Авторизация на сайте и получение данных из личного кабинета на сайте - C#
В общем, проштудировав три справочника за неделю и полазав в интернете, кроме как опухнувшего мозга ничего не получил.. В общем, есть...

9
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
07.05.2013, 23:47 #2
нужно по сайту смотреть как на нем реализована авторизация.

Добавлено через 1 минуту
сервер должен поддерживать авторизация Get или Post запросом чтобы вы могли их применить.
0
xpresiq
0 / 0 / 0
Регистрация: 06.12.2010
Сообщений: 25
07.05.2013, 23:48  [ТС] #3
и как посмотреть, какие запросы поддерживает тот или иной сайт?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
07.05.2013, 23:51 #4
я не специалист, но вроде по коду сайта, или перехватом запросов, по адресной строке в браузере при логине.
а вообще, там где это нужно, выкладывают документацию с API-ем для интеграции.
0
c4sp3r
0x5B4C322291BD52AE
93 / 93 / 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 вообще если ты раньше не писал подобный софт будет конечно сложно.
2
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
 
                    }
правильно ли посылаю пост запрос? Просто при просмотре след страницы(см. в коде) получаю не авторизированую страницу.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
09.05.2013, 23:32 #7
пробовали к ссылке прибавлять cgi.exe?function=is_login ?
0
xpresiq
0 / 0 / 0
Регистрация: 06.12.2010
Сообщений: 25
09.05.2013, 23:39  [ТС] #8
да, конено, как уже не пробывал.. есть одно но, то что показывает в webview, а именно страницу что время пользование вышло, попробуйте заново войти, а не то что имя пользователя введено неверно или ту же страницу авторизации
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
09.05.2013, 23:43 #9
воспользуйтесь тулзами которые c4sp3r посоветовал и проанализируйте запросы которые браузер посылает.
0
c4sp3r
0x5B4C322291BD52AE
93 / 93 / 5
Регистрация: 04.03.2013
Сообщений: 295
11.05.2013, 11:35 #10
Цитата Сообщение от xpresiq Посмотреть сообщение
вообщем я так понимаю через пост запросы все идет.
да.

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

Цитата Сообщение от xpresiq Посмотреть сообщение
Просто при просмотре след страницы(см. в коде) получаю не авторизированую страницу.
Код
wb1.loadUrl("след страница после авторизации"); //здесь хочу посмотреть прошла ли авторизация
тут просто загружается страница которая указана при этом у тебя не передаются куки а без них ты всегда будешь не авторизован да и WebView не совсем подходит для таких проверок лучше читать непосредственно ответ сервера.
1
11.05.2013, 11:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2013, 11:35
Привет! Вот еще темы с ответами:

Как сделать, чтобы отладка была не на Андроиде (на Андроиде запускается долго) - Delphi FireMonkey
Всем привет, начинаю разрабатывать на андроид, подключл его проверил, но ооочень долго запускается, как нужно настроить delphi xe7 , чтоб...

Авторизация клиента на сервере - C# WCF
Клиент /// &lt;summary&gt; /// Создание экземпляра клиента /// &lt;/summary&gt; /// &lt;returns&gt;Экземпляр...

Outlook: авторизация по сертификатам клиента - MS Outlook
Доброго дня! Вопрос скорее общий по Exchange, но проблема возникла именно с Аутлуком) Итак, MS Exchange 2010, IIS 7, без TMG. ...

JAAS JBOSS 7 Авторизация и аутентификация толстого клиента - Java EE
Появилась такая задача. Есть толстый клиент и JBOSS AS 7. Необходимо логинить пользователей через толстый клиент. Кто знает где...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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