Android HttpClient для моего ПК - PullRequest
       1

Android HttpClient для моего ПК

0 голосов
/ 16 октября 2011

Мне нужно разработать вспомогательный класс поверх org.apache.httpclient для моего приложения для Android.Следующий код прекрасно работает для Android, но не для JavaSE 1.6 на моем ПК.

Вопрос: Могу ли я использовать org.apache.httpclient как для Android, так и для ПК?Если я не могу: что посоветуете ваша http-клиентская библиотека?Я хочу разработать один вспомогательный класс и использовать его вообще.

Вот код, который отлично работает в Android, но некоторые классы не могут быть разрешены в Java SE 1.6.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

public class HTTPClient {

public static void connect(String url)
{

    HttpClient httpclient = new DefaultHttpClient();

    // Prepare a request object
    HttpGet httpget = new HttpGet(url); 

    // Execute the request
    HttpResponse response;
    try {
        response = httpclient.execute(httpget);

        // Examine the response status

        // Get hold of the response entity
        HttpEntity entity = response.getEntity();
        // If the response does not enclose an entity, there is no need
        // to worry about connection release

        if (entity != null) {

            // A Simple JSON Response Read
            InputStream instream = entity.getContent();

            String result= convertStreamToString(instream);
            // now you have the string representation of the HTML request
            instream.close();
        }


    } catch (Exception e) {}
}

    private static String convertStreamToString(InputStream is) {
    /*
     * To convert the InputStream to String we use the BufferedReader.readLine()
     * method. We iterate until the BufferedReader return null which means
     * there's no more data to read. Each line will appended to a StringBuilder
     * and returned as String.
     */
    BufferedReader reader = new BufferedReader(new InputStreamReader(is));
    StringBuilder sb = new StringBuilder();

    String line = null;
    try {
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return sb.toString();
}
}

1 Ответ

0 голосов
/ 17 октября 2011

Да, вы можете, вы должны избегать именования вашего вспомогательного класса клиента так же, как уже определенный класс.Хотя Java чувствительна к регистру, она сбивает вас с толку, когда вы меньше всего этого ожидаете.Это может быть даже виновным в возникновении этой проблемы.Почему бы не назвать его HttpClientHelper, так как это действительно так.

Вот пример HttpClient http://hc.apache.org/httpclient-3.x/tutorial.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...