Sunday 10 March 2013

Отправка POST запроса Android программирование HTTP

Часто требуется просто-напросто отправить на сервер обычный HTTP POST запрос.



Следующий код показывает как на Android отправить POST запрос и получить объект ответа, через который можно получить необходимую информацию с удаленного сервера.


public void postData() {
    // Создадим HttpClient и PostHandler
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://www.moisaitik.ru/postdemo.php");

    try {
        // Добавим данные (пара - "название - значение")
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("login", "andro"));
        nameValuePairs.add(new BasicNameValuePair("text", "Привет!"));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Выполним запрос
        HttpResponse response = httpclient.execute(httppost);
        
    } catch (ClientProtocolException e) {
        // Ошибка :(
    } catch (IOException e) {
        // Ошибка :(
    }
} 

4 comments:

  1. а как обработать ответ?(получить string)

    ReplyDelete
    Replies
    1. String responseString = new String();
      HttpEntity responseEntity = response.getEntity();
      if(responseEntity!=null) {
      responseString = EntityUtils.toString(responseEntity);
      }

      Delete
  2. А как применять кодировку? Ведь многие серверы требуют, чтобы контент был в utf-8

    ReplyDelete
    Replies
    1. вот так: httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs,"UTF-8"));

      Delete