Очень часто приложения для 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());