Очень часто приложения для Android обмениваются информацией с сервером. Для передачи данных между сервером и приложением используется протокол HTTP. Здесь мы рассмотрим как передавать данные на сервер и получать ответ.
Внимание!
Запросы к сети, как и все остальные тяжелые задачи нужно выполнять в отдельном потоке. Для этого отлично подойдет AsyncTask.
Подготовка
Установим в манифесте разрешение на проверку интернета:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE">
GET-запрос
DefaultHttpClient hc = new DefaultHttpClient();
ResponseHandler response = new BasicResponseHandler();
HttpGet http = new HttpGet("http://site.ru/api.php?login=user1&psw=1234");
//получаем ответ от сервера
String response = (String) hc.execute(http, response);
Если надо передать в символы !»№;%?(), то такую строку нужно обработать:
String url = URLEncoder.encode(«ваша %?! строка», «UTF-8»);
POST-запрос
HttpClient httpclient = new DefaultHttpClient();
HttpPost http = new HttpPost("http://site.ru/api.php?");
List nameValuePairs = new ArrayList(2);
nameValuePairs.add(new BasicNameValuePair("login", "user1"));
nameValuePairs.add(new BasicNameValuePair("pswd", "1234"));
http.setEntity(new UrlEncodedFormEntity(nameValuePairs));
String response = (String) httpclient.execute(http, new BasicResponseHandler());
