Запросы к web серверу нужно выполнять в отдельном потоке.

Подготовка

Установим в манифесте разрешение на работу с интернетом:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Работа с GET запросом

DefaultHttpClient hc = new DefaultHttpClient();
ResponseHandler response = new BasicResponseHandler();
HttpGet http = new HttpGet("http://api.devreadwrite.com/v1/getUserData?id=1");
//получаем ответ от сервера
String response = (String) hc.execute(http, response);

Для передачи спец символов (например: !"№;%?()) необходимо их преобразовать с помощью URLEncoder:

String url = URLEncoder.encode("данные %?!", "UTF-8");

Работа с POST запросом

HttpClient httpclient = new DefaultHttpClient();
HttpPost http = new HttpPost("http://api.devreadwrite.com/v1/getUserData");
List nameValuePairs = new ArrayList(2);
nameValuePairs.add(new BasicNameValuePair("id", "1"));
nameValuePairs.add(new BasicNameValuePair("value2", "2"));
http.setEntity(new UrlEncodedFormEntity(nameValuePairs));
//получаем ответ от сервера
String response = (String) httpclient.execute(http, new BasicResponseHandler());