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

Составление http запроса - Android

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
Noit
 Аватар для Noit
23 / 23 / 2
Регистрация: 11.04.2012
Сообщений: 847
03.07.2012, 18:42     Составление http запроса #1
Нужен запрос в котором передаются логин и пароль, и затем выводятся данные уже авторизованного пользователя, например страница либо информация со страницы
только начал осваивать, но разобраться трудновато, помогите
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
03.07.2012, 20:40     Составление http запроса #2
http://www.androidsnippets.com/execu...ith-httpclient
http://www.androidsnippets.com/execu...ith-httpclient
Noit
 Аватар для Noit
23 / 23 / 2
Регистрация: 11.04.2012
Сообщений: 847
03.07.2012, 20:54  [ТС]     Составление http запроса #3
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public void postData() {
    // Create a new HttpClient and Post Header
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php");
 
    try {
        // Add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("id", "12345"));
        nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!"));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
 
        // Execute HTTP Post Request
        HttpResponse response = httpclient.execute(httppost);
        
    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }
}
итоги по нулям((

Добавлено через 26 секунд
Java
1
2
catch (IOException e) {
        // TODO Auto-generated catch block
суда переходит

Добавлено через 43 секунды
Java
1
HttpResponse response = httpclient.execute(httppost);
а это не выполняется, перед ним выхoдит из try
flashok
 Аватар для flashok
86 / 88 / 1
Регистрация: 14.02.2009
Сообщений: 293
03.07.2012, 21:07     Составление http запроса #4
<uses-permission android:name="android.permission.INTERNET" />
Noit
 Аватар для Noit
23 / 23 / 2
Регистрация: 11.04.2012
Сообщений: 847
04.07.2012, 12:20  [ТС]     Составление http запроса #5
а как можно вывести содержимое страницы которую открыло с паролем и логином на экран, или хотя бы часть этих данных??

Добавлено через 1 час 48 минут
Java
1
2
3
4
5
6
7
8
9
10
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
 
            String line = "";
            while ((line = rd.readLine()) != null) {
                System.out.println(line);
                if (line.startsWith("Auth=")) {
                    String key = line.substring(5);
                    // Do something with the key
                }
            }
Выводится страница, но только в лог, а как ее встаить на экран или что можно сделать для вывода ее на экран приложения??
flashok
 Аватар для flashok
86 / 88 / 1
Регистрация: 14.02.2009
Сообщений: 293
04.07.2012, 13:47     Составление http запроса #6
-если у вас в ответе от сервера html, можно вывести в webview
-но я не вижу смысла так как человек может зайти через сайт и получить тот же функционал
-лучше реализовать свой интерфейс для работы с сайтом, если вы задавались такой целью
так как по вашим вопросом можно только гадать
Noit
 Аватар для Noit
23 / 23 / 2
Регистрация: 11.04.2012
Сообщений: 847
04.07.2012, 14:16  [ТС]     Составление http запроса #7
у меня есть меню, при нажатии на кнопку(на той же меню), открывается новое окно, в нем нужно отобразить часть данных полученных при запросе, который написан выше, как мне эти данные допустим занести в html файл??
flashok
 Аватар для flashok
86 / 88 / 1
Регистрация: 14.02.2009
Сообщений: 293
04.07.2012, 14:23     Составление http запроса #8
в ответ от сервера вам приходит строка данных

если у вас в ответ приходит html - строка и вам надо его распарсить, то используем к пример HtmlСleaner
http://www.javatalks.ru/sutra121348.php

ваш вопрос как их занести в html вообще не понятен
вот к примеру
Java
1
myWebView.loadData(myHtmlString, "text/html; charset=UTF-8", null);
Noit
 Аватар для Noit
23 / 23 / 2
Регистрация: 11.04.2012
Сообщений: 847
04.07.2012, 14:38  [ТС]     Составление http запроса #9
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
public void postData() {
        
        // Create a new HttpClient and Post Header
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://fergus.myftp.org/poit7/index.php");
 
        try {
            // Add your data
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
            nameValuePairs.add(new BasicNameValuePair("user_login", "Noit"));
            nameValuePairs.add(new BasicNameValuePair("user_password", "123456"));
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            // Execute HTTP Post Request
            HttpResponse response = httpclient.execute(httppost);
 
            System.out.println(response);
            
            BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
 
            String line = "";
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
                
                if (line.startsWith("Auth=")) {
                    String key = line.substring(5);
                    // Do something with the key
                }
            }
            
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            Log.e("ERROR","MalformedURLException");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            Log.e("ERROR","IOException");
        }
        
    }
в reader находится текст страницы, извиняюсь, если спрашиваю глупости, но как это вывести именно на экран?

Добавлено через 40 секунд
я вывожу в Log, для проверки, а на экран вывести не могу(
flashok
 Аватар для flashok
86 / 88 / 1
Регистрация: 14.02.2009
Сообщений: 293
04.07.2012, 14:45     Составление http запроса #10
сироки с 18 по 28 убрать и заменить на
String str = EntityUtils.toString(response.getEntity());
response.getEntity().consumeContent();
return str;

и соответсвенно понемять тип возвращаемого значения на стринг

ну и потом в активити где-то присвоить например EditText
Noit
 Аватар для Noit
23 / 23 / 2
Регистрация: 11.04.2012
Сообщений: 847
04.07.2012, 14:56  [ТС]     Составление http запроса #11
Цитата Сообщение от flashok Посмотреть сообщение
return str;
Ошибочка вылезла:
Void methods cannot return a value
flashok
 Аватар для flashok
86 / 88 / 1
Регистрация: 14.02.2009
Сообщений: 293
04.07.2012, 15:02     Составление http запроса #12
Цитата Сообщение от flashok Посмотреть сообщение
и соответсвенно понемять тип возвращаемого значения на стринг
для кого я писал
Noit
 Аватар для Noit
23 / 23 / 2
Регистрация: 11.04.2012
Сообщений: 847
04.07.2012, 15:31  [ТС]     Составление http запроса #13
а можно ли еще чтобы вывести не в EditText а в webView в качестве страницы?? и пример пожалуйста

Добавлено через 17 минут
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
public class AfishaActivity extends Activity {
            
    private WebView mWebView;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);
                
        /*EditText WebText = new EditText(this);
        Spanned stroka = Html.fromHtml(postData());
        WebText.setText(stroka);
 
        setContentView(WebText);*/
        
        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true); 
        mWebView.loadData(postData(), "text/html", null);
        mWebView.setWebViewClient(new BrouserClient());
        
    }
    
    private class BrouserClient extends WebViewClient 
    {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) 
        {
            view.loadUrl(url);
            return true;
        }
    }
есть такая часть кода, но... она выводит строку с кодом в качестве адреса(
flashok
 Аватар для flashok
86 / 88 / 1
Регистрация: 14.02.2009
Сообщений: 293
04.07.2012, 15:48     Составление http запроса #14
я же уже писал что можно сделать так

Java
1
myWebView.loadData(myHtmlString, "text/html; charset=UTF-8", null);
где myHtmlString возвращаемая предудущей функцией строка

если я все правильно понял

У вас в коде я не заметил mWebView
что-то я не понял тогда что у вас не получаеться

проще киньте проект
Noit
 Аватар для Noit
23 / 23 / 2
Регистрация: 11.04.2012
Сообщений: 847
04.07.2012, 16:05  [ТС]     Составление http запроса #15
считывает строку не как хтмл контент, а как адрес по которому должна быть страница выводит якобы веб страница не доступна

Добавлено через 6 минут
уже разобрался, только вместо русских буквочек, казикабры вылезли
flashok
 Аватар для flashok
86 / 88 / 1
Регистрация: 14.02.2009
Сообщений: 293
04.07.2012, 16:11     Составление http запроса #16
кодировку поставьте charset=UTF-8
как я говорил выше myWebView.loadData(myHtmlString, "text/html; charset=UTF-8", null)
Noit
 Аватар для Noit
23 / 23 / 2
Регистрация: 11.04.2012
Сообщений: 847
04.07.2012, 16:36  [ТС]     Составление http запроса #17
так и стоит

Java
1
2
3
4
5
Spanned stroka = Html.fromHtml(postData());
        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true); 
        mWebView.loadData(stroka.toString(), "text/html; charset=UTF-8", null);
        mWebView.setWebViewClient(new BrouserClient());
Добавлено через 18 минут
проблема решена
Java
1
2
3
4
5
Spanned stroka = Html.fromHtml(postData());
        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.loadDataWithBaseURL(null, stroka.toString(), "text/html", "utf-8", null);
        mWebView.setWebViewClient(new BrouserClient());
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.07.2012, 16:51     Составление http запроса #18
наверное нужно было так
Java
1
mWebView.loadData(stroka.toString(), "text/html", "UTF-8");
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.07.2012, 17:02     Составление http запроса
Еще ссылки по теме:

Android Mp3 http
Android SQLiteDatabase, составление запроса для сортировки типа дерево
Http запрос Android
Два http get запроса в одном AsyncTask Android
Https и http Android

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

Или воспользуйтесь поиском по форуму:
Noit
 Аватар для Noit
23 / 23 / 2
Регистрация: 11.04.2012
Сообщений: 847
04.07.2012, 17:02  [ТС]     Составление http запроса #19
Цитата Сообщение от V0v1k Посмотреть сообщение
mWebView.loadData(stroka.toString(), "text/html", "UTF-8");
нет так не работает, нужно было так
Java
1
mWebView.loadDataWithBaseURL(null, stroka.toString(), "text/html", "utf-8", null);
Yandex
Объявления
04.07.2012, 17:02     Составление http запроса
Ответ Создать тему
Опции темы

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