Как использовать DefaultHttpClient в Android?

Как использовать DefaultHttpClient в Android?


person Umer Hassam    schedule 23.03.2011    source источник
comment
можно было бы и посерьезнее задать вопрос....   -  person Necronet    schedule 23.03.2011
comment
Кажется, что этот вопрос может быть немного более конкретным?   -  person Matthew Willis    schedule 23.03.2011


Ответы (3)


Я предлагаю прочитать учебники, предоставленные с android-api.

Вот какой-то случайный пример, который использует DefaultHttpClient, найденный простым текстовым поиском в папке примеров.

РЕДАКТИРОВАТЬ: Образец-источник не предназначен для показа чего-либо. Он просто запросил содержимое URL-адреса и сохранил его в виде строки. Вот пример, который показывает, что он загрузил (если это строковые данные, такие как html-, css- или javascript-файл):

main.xml

  <?xml version="1.0" encoding="utf-8"?>
  <TextView xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/textview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
  />

в onCreate вашего приложения добавьте:

  // Create client and set our specific user-agent string
  HttpClient client = new DefaultHttpClient();
  HttpGet request = new HttpGet("http://stackoverflow.com/opensearch.xml");
  request.setHeader("User-Agent", "set your desired User-Agent");

  try {
      HttpResponse response = client.execute(request);

      // Check if server response is valid
      StatusLine status = response.getStatusLine();
      if (status.getStatusCode() != 200) {
          throw new IOException("Invalid response from server: " + status.toString());
      }

      // Pull content stream from response
      HttpEntity entity = response.getEntity();
      InputStream inputStream = entity.getContent();

      ByteArrayOutputStream content = new ByteArrayOutputStream();

      // Read response into a buffered stream
      int readBytes = 0;
      byte[] sBuffer = new byte[512];
      while ((readBytes = inputStream.read(sBuffer)) != -1) {
          content.write(sBuffer, 0, readBytes);
      }

      // Return result from buffered stream
      String dataAsString = new String(content.toByteArray());

      TextView tv;
      tv = (TextView) findViewById(R.id.textview);
      tv.setText(dataAsString);

  } catch (IOException e) {
     Log.d("error", e.getLocalizedMessage());
  }

Этот пример теперь загружает содержимое заданного URL-адреса (в примере это OpenSearchDescription для stackoverflow) и записывает полученные данные в TextView.

person MacGucky    schedule 23.03.2011
comment
Когда я реализую этот код, вывод мне ничего не показывает. Пожалуйста, сэр, дайте мне полный код для доступа к данным из URL-адреса с помощью httpclient - person Umer Hassam; 23.03.2011
comment
Я изменил пример, чтобы он отображал полученные данные в TextView. - person MacGucky; 23.03.2011

Вот общий пример кода:

DefaultHttpClient defaultHttpClient = new DefaultHttpClient();

HttpGet method = new HttpGet(new URI("http://foo.com"));
HttpResponse response = defaultHttpClient.execute(method);
InputStream data = response.getEntity().getContent();
//Now we use the input stream remember to close it ....
person Necronet    schedule 23.03.2011

Из Документация Google

public DefaultHttpClient (ClientConnectionManager conman, HttpParams params)

Создает новый HTTP-клиент из параметров и диспетчера соединений.

Параметры
"conman" диспетчер соединений,
"params" параметры

public DefaultHttpClient (HttpParams params)
public DefaultHttpClient ()
person zkarthik    schedule 23.03.2011