Отправить логин с POST с Android! - PullRequest
4 голосов
/ 19 апреля 2011

У меня есть форма входа в Android, которую я хочу использовать для отправки запроса HttpPost на сервер и получения cookie-файла взамен, если вход был успешным.У меня есть одна проблема: как мне реализовать правильную версию этого и как мне получить cookie и сохранить его на устройстве (сохранить ли его в базе данных настроек? Чтобы потом можно было его уничтожить?).1002 * У меня есть этот код прямо сейчас:

public void postData() {
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://a_site.com/logintest.aspx");

    try {
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("txtUsername", "username"));
        nameValuePairs.add(new BasicNameValuePair("txtPassword", "123456"));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        HttpResponse response = httpclient.execute(httppost);
        Log.v(TAG, "Response from server: " + response.toString());

    } catch (ClientProtocolException e) {

    } catch (IOException e) {

    }
}

Как получить cookie и как его сохранить, если вход был успешным?

Ответы [ 2 ]

5 голосов
/ 19 апреля 2011

Вместо того, чтобы писать свой собственный, вы можете сделать это простым способом:

import org.apache.http.util.EntityUtils;



HttpResponse response = httpclient.execute(httppost);
String responseAsText = EntityUtils.toString(response.getEntity());
2 голосов
/ 19 апреля 2011

Следующий фрагмент кода вернет красиво отформатированное строковое представление ответа http:

public String responseHandler(HttpResponse response)
{
    HttpEntity resEntity = response.getEntity();
            br = new BufferedReader(new InputStreamReader(
                    resEntity.getContent(), "UTF-8"));
            String line;
            String result = "";
            while (((line = br.readLine()) != null)) {              
                result = result + line + "\n";
            }

            return result;
}

Как вы решите сохранить результат - это другой вопрос, я бы предложил какую-то глобальную переменную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...