Вот документы HttpClient 4 , то есть то, что использует Android (4, а не 3, с 1.0-> 2.x). Документы сложно найти (спасибо Apache;)), потому что HttpClient теперь является частью HttpComponents (и если вы просто ищете HttpClient, вы, как правило, в конечном итоге окажетесь в 3.x).
Кроме того, если вы делаете любое количество запросов, вы не хотите создавать клиента снова и снова. Скорее, как руководства для HttpClient note , создайте клиент один раз и сохраняйте его. Оттуда используйте ThreadSafeConnectionManager .
Я использую вспомогательный класс, например что-то вроде HttpHelper (который все еще является движущейся целью - я планирую перенести это в свой собственный проект утилит Android в какой-то момент и поддерживать двоичные данные, если пока не добрался), чтобы помочь с этим. Вспомогательный класс создает клиента и имеет удобные методы-оболочки для get / post / etc. Везде, где вы ИСПОЛЬЗУЕТЕ этот класс из Activity , вы должны создать внутренний внутренний AsyncTask (чтобы не блокировать поток пользовательского интерфейса при выполнении запроса), например:
private class GetBookDataTask extends AsyncTask<String, Void, Void> {
private ProgressDialog dialog = new ProgressDialog(BookScanResult.this);
private String response;
private HttpHelper httpHelper = new HttpHelper();
// can use UI thread here
protected void onPreExecute() {
dialog.setMessage("Retrieving HTTP data..");
dialog.show();
}
// automatically done on worker thread (separate from UI thread)
protected Void doInBackground(String... urls) {
response = httpHelper.performGet(urls[0]);
// use the response here if need be, parse XML or JSON, etc
return null;
}
// can use UI thread here
protected void onPostExecute(Void unused) {
dialog.dismiss();
if (response != null) {
// use the response back on the UI thread here
outputTextView.setText(response);
}
}
}