Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
Kazachek
17 / 17 / 8
Регистрация: 03.11.2013
Сообщений: 391
1

Автозаполнение форм или же HTTP base авторизация с логином и паролем

07.02.2014, 11:00. Просмотров 3274. Ответов 24
Метки нет (Все метки)

Всем добрый день.

Хочу написать приложения которое будет отправлять запрос и получать ответ в виде xml. Но сервер защищен HTTP авторизацией. При прямом отправке запроса выдает ошибку что я не авторизован, а если открыть страницу запроса в браузере то выползает окно авторизации, можно ли как то программно ввести туда логин и пароль или же во время отправки запроса как то указать мой логин и пароль.

Добавляю скриншоты для понимания вопроса.

Заранее благодарю всех за ответы и помощь
0
Миниатюры
Автозаполнение форм или же HTTP base авторизация с логином и паролем  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2014, 11:00
Ответы с готовыми решениями:

Зайти на сайт с логином и паролем | android studio
Привет! Делаю мобильное приложение, в нём надо зайти на сайт(ввести логин и...

Post запрос c логином и паролем на примере api.smsfeedback.ru
Здравствуйте. Ни как не могу разобраться. Как сделать post запрос по такой...

Простая авторизация с логином и паролем
Нужно реализовать простую авторизацию с логином и паролем, которую идут в бд и...

хочу сделать форм с логином и паролем в Delphi
Хочу сделать так чтобы логин и пароль вводить, и он перешел во второй форм и...

Форма с логином и паролем
Всем доброго времени суток! Подскажите как реализовать такой механизм. При...

24
Kazachek
17 / 17 / 8
Регистрация: 03.11.2013
Сообщений: 391
07.02.2014, 13:11  [ТС] 2
Нашел одну тему в другом форуме, но не могу понять как это сделать помогите пожалуйста, там все описано, просто подскажите куда URL логин и пароль прописать чтоб у меня оно заработало.
Спасибо
http://androidforums.ru/topic/8413-%...051#entry62051

Добавлено через 1 час 40 минут
0
Kazachek
17 / 17 / 8
Регистрация: 03.11.2013
Сообщений: 391
07.02.2014, 14:08  [ТС] 3
Попытался в WebView загрузить эту страницу, чтоб хотябы с ручным вводом логина и пароля работала, но она совсем не хочет открывать
0
Миниатюры
Автозаполнение форм или же HTTP base авторизация с логином и паролем  
Kazachek
17 / 17 / 8
Регистрация: 03.11.2013
Сообщений: 391
07.02.2014, 15:31  [ТС] 4
Покопался нашел еще один пример и совет, но не могу разобраться помогите пожалуйста.

http://www.mail-archive.com/android-.../msg30468.html

Добавлено через 24 секунды
0
Kazachek
17 / 17 / 8
Регистрация: 03.11.2013
Сообщений: 391
09.02.2014, 03:22  [ТС] 5
не справляюсь, нужна помощь отзовитесь пожалуйста
0
Ismoil
-8 / 10 / 5
Регистрация: 18.12.2012
Сообщений: 81
09.02.2014, 12:44 6
http://www.mkyong.com/java/how-to-send-http-request-getpost-in-java/
почитай здесь

Добавлено через 6 минут
отправь скриншоты xml файла вопрос полностью не раскрыт))
1
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
09.02.2014, 17:03 7
Kazachek, отправляете POST или GET (зависит от сервера) запрос на авторизацию, в боди запроса указываете параметры логина. После этого сервер должен вернуть Вам какой-нибудь token. Следующие запросы должны идти с этим токеном в header. По нему сервер будет Вас узнавать.
0
Kazachek
17 / 17 / 8
Регистрация: 03.11.2013
Сообщений: 391
09.02.2014, 17:08  [ТС] 8
Извините сейчас сделать скрин не мошу так как нахожусь в дали от компа, на данный момент проблема в другом окошко для ввода логина и пароля которая отображается в браузере не отображается в webview. Вебвью сразу выдает ошибку 401 не выводя окошку для ввода логина и пароля. Код программы прост, там я указал вебвью какую страницу открыть

Добавлено через 2 минуты
Цитата Сообщение от YuraAAA Посмотреть сообщение
Kazachek, отправляете POST или GET (зависит от сервера) запрос на авторизацию, в боди запроса указываете параметры логина. После этого сервер должен вернуть Вам какой-нибудь token. Следующие запросы должны идти с этим токеном в header. По нему сервер будет Вас узнавать.
Можете поделиться примером или ссылкой, если есть под рукой
0
Ismoil
-8 / 10 / 5
Регистрация: 18.12.2012
Сообщений: 81
10.02.2014, 14:17 9
как сказал Юра , http get zaprosi отправляешь на удаленный сервер не знаю как у тебя у меня был такой пример я его выполнил хочешь скину данные)))

Добавлено через 9 минут
public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
EditText users=(EditText)findViewById(R.id.editText1);
EditText pass=(EditText)findViewById(R.id.editText2);


String f = "";
if(users.getText()!=null&&pass.getText()!=null)
{
try {
//MD5
f = MD5("Шифруешь пароль если хочешь" + users.getText().toString() + MD5(pass.getText().toString()));
String url = "http://твой url?users="+users.getText().toString()+"&pass= "+pass.getText()+" "+f;
URL obj;
obj = new URL(url);
HttpURLConnection con;
con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();

while ((inputLine = in.readLine()) != null) {
response.append(inputLine);

}

if(!response.substring(0, 1).toString().equals("#"))
{
Intent myIntent = new Intent(getBaseContext(), Secondactivity.class);
myIntent.putExtra("users",response.toString());
//myIntent.putExtra("pass",pass.getText().toString());
startActivity(myIntent);
finish();
}
else
{
Toast.makeText(getBaseContext(), "Не верный логин или пароль",Toast.LENGTH_LONG).show();
}

in.close();

}

catch (IOException e) {
Toast.makeText(getBaseContext(), "Tost: "+e.getMessage(), Toast.LENGTH_LONG).show();
e.printStackTrace();
e.getMessage();
}





}

}
});

Добавлено через 57 секунд
а в xml файле разберешься сам не упрощать тебе работу ну я уже упростил))

Добавлено через 3 минуты
http://androidexample.com/How_To_Mak...aid=63&aaid=88
вот пример самый простой))
1
Kazachek
17 / 17 / 8
Регистрация: 03.11.2013
Сообщений: 391
10.02.2014, 15:10  [ТС] 10
Спасибо за советы, очень полезная вещь, но возможно я не так задал свой вопрос, что вы не понимаете чего я хочу.

Есть страничка при открытии которой выползает окно авторизации (базовая HTTP авторизация). При открытии в браузере планшета, окно для ввода логина и пароля отображается а если указать тот же URL в WebView то окошко не появляется и сразу сервер отправляет 401 ошибку авторизации которую показал выше на картинках.

Задача: Сделать так чтоб в WebView отображалось окно для ввода логина и пароля чтоб дальше можно было работать со страничкой. В php файле менять ничего не нужно, так как с компьютера и с браузера все работает нормально. Проблема именно в WebView.

Пожалуйста помогите решить проблему так как уже который день пытаюсь его решить но у меня не получается. Заранее благодарю всех за содействие.
0
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
10.02.2014, 15:39 11
может вы забываете подключить к webview выполнения скриптов?
0
Kazachek
17 / 17 / 8
Регистрация: 03.11.2013
Сообщений: 391
10.02.2014, 15:44  [ТС] 12
Цитата Сообщение от NiRamz Посмотреть сообщение
ожет вы забываете подключить к webview выполнения скриптов?
Вроде подключил выполнение скриптов

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
package com.example.autorization;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.webkit.WebView;
 
public class MainActivity extends Activity {
    
    private WebView webView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        webView = (WebView) findViewById(R.id.webView1);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.loadUrl("http://10.84.33.88/freenums/build/package/SelfCareTablet/index.html");
    
}
 
    
    
    
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
}
0
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
10.02.2014, 16:32 13
хм, попробывал из браузера открыть ссылку что забита в коде, хром сказал что не может найти страницу. Проверьте правильность самого адреса, мб где то опечатку допустили?
0
Kazachek
17 / 17 / 8
Регистрация: 03.11.2013
Сообщений: 391
10.02.2014, 18:25  [ТС] 14
NiRamz, ссылка внутренная, подключение идет по VPN каналу. С внешних каналов нет доступа в целях безопастности. Приложение для организации в которой работаю.

Добавлено через 53 минуты
Так и не нашел решение. Но думаю есть и обходной вариант, отправить запрос программно, получить ответ и записать его в куки, а куки присвоить WebView? что думаете на счет этого?
Нашел одну статью с присвоением куки, но там у меня опять не получается в одной строке ошибка ни как не могу разобраться как ее решить (PersistentConfig) . Пожалуйста помогите разобраться с этой проблемой, если есть фрилансеры которые за деньги помогут пожалуйста посоветуйте их просто уже 5 день с одной и той же проблемой.

http://code.walletapp.net/post/46414301269/passing-cookie-to-webview
0
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
10.02.2014, 18:27 15
скиньте лог ошибки, посмотрим
0
Kazachek
17 / 17 / 8
Регистрация: 03.11.2013
Сообщений: 391
10.02.2014, 19:43  [ТС] 16
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
package com.example.autorization;
 
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.Menu;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
 
public class MainActivity extends Activity {
    
    WebView myWebView;
    private final static String TAG = "WebView";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        myWebView = (WebView) findViewById(R.id.webView1);
        new WebViewTask().execute();
    }
 
    private class WebViewTask extends AsyncTask<Void, Void, Boolean> {
    String sessionCookie;
    CookieManager cookieManager;
 
        @Override
    protected void onPreExecute() {
        CookieSyncManager.createInstance(MainActivity.this);
        cookieManager = CookieManager.getInstance();
                    
        sessionCookie = new persistedConfig(getApplicationContext()).getCookieString();
        if (sessionCookie != null) {
                            /* delete old cookies */
            cookieManager.removeSessionCookie(); 
        }
        super.onPreExecute();
    }
    protected Boolean doInBackground(Void... param) {
                    /* this is very important - THIS IS THE HACK */
        SystemClock.sleep(1000);
        return false;
    }
    @Override
    protected void onPostExecute(Boolean result) {
        if (sessionCookie != null) {
            cookieManager.setCookie("yourdomain.com", sessionCookie);
            CookieSyncManager.getInstance().sync();
        }
        WebSettings webSettings = myWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webSettings.setBuiltInZoomControls(true);
        myWebView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                return super.shouldOverrideUrlLoading(view, url);
            }
            
        });
        myWebView.loadUrl("https://yourdomain.com/anything");
    }
}
 
    
    
    
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
}
0
Миниатюры
Автозаполнение форм или же HTTP base авторизация с логином и паролем  
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
10.02.2014, 20:05 17
Наведите курсор на persiitedconfig и посмотрите что он вам пишет
0
Kazachek
17 / 17 / 8
Регистрация: 03.11.2013
Сообщений: 391
10.02.2014, 20:59  [ТС] 18
Цитата Сообщение от NiRamz Посмотреть сообщение
Наведите курсор на persiitedconfig и посмотрите что он вам пишет
Вот что он пишет при наведении курсора
0
Миниатюры
Автозаполнение форм или же HTTP base авторизация с логином и паролем  
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
10.02.2014, 21:22 19
Пишет что у вас такого класса нет, прочитайте еще раз пример и посмотрите все ли верно записано
1
Kazachek
17 / 17 / 8
Регистрация: 03.11.2013
Сообщений: 391
11.02.2014, 07:58  [ТС] 20
Там про класс ничего не написано. Нет ли у вас подобного примера? Вообще пральный ли выбранный мною метод?

Добавлено через 8 часов 59 минут
Не ужели с этой задачей мы не можем справиться вместе? Не ужели никто из наших форумчан не сталкивался с этой проблемой? не ужели никто не будет пытаться решить проблему. Люди призываю всех давайте вместе решим проблему, пожалуйста.

0
11.02.2014, 07:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2014, 07:58

Создать форму с логином и паролем
мне надо на форме сделать регистрацию (логин/пароль) , но не знаю как сделать....

Страница с логином, паролем и отправить
Help! Плиз, ребята, кто понимает, помогите пожалуйста!!! Необходимо создать...

Подключение по telnet c логином и паролем
Доброго времени суток! Необходимо реализовать такое действие: 1. В форме 2...


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

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

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