Android HttpClient获取JSON数据并解析

/**
 * HTTP工具类
 * Created by lezg on 2014/7/22.
 */
public class HttpUtil {

    private static final int TIME_OUT = 1000;
    private static final int TIMEOUT_CONNECTION = 20000;
    private static final int TIMEOUT_SOCKET = 20000;

    private static String doGet(String url){
        HttpGet httpGet = new HttpGet(url);
        HttpClient httpClient = getHttpClient();
        String result="";
        try {
            HttpResponse response = httpClient.execute(httpGet);
            if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
                HttpEntity entity = response.getEntity();
                result = EntityUtils.toString(entity);
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            httpClient.getConnectionManager().shutdown();
        }
        return result;
    }

    private static HttpClient getHttpClient() {
        HttpParams httpParams = new BasicHttpParams();
        // timeout: get connections from connection pool
        ConnManagerParams.setTimeout(httpParams, TIME_OUT);
        // timeout: connect to the server
        HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT_CONNECTION);
        // timeout: transfer data from server
        HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_SOCKET);
        HttpProtocolParams.setVersion(httpParams, HttpVersion.HTTP_1_1);
        HttpProtocolParams.setContentCharset(httpParams, HTTP.UTF_8);
        String userAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2) Gecko/20100115 Firefox/3.6";
        HttpProtocolParams.setUserAgent(httpParams, userAgent);
        return new DefaultHttpClient(httpParams);
    }

    public static ArrayList<News> getNews(String url){
        ArrayList<News> news = new ArrayList<News>();
        try {
            String result = doGet(url);
            JSONObject value = new JSONObject(result).getJSONObject("value");
            JSONArray items = value.getJSONArray("items");
            for (int i = 0; i < items.length(); ++i) {
                JSONObject item = items.getJSONObject(i);
                News newData = new News();
                newData.setTitle(item.optString("title"));
                newData.setDescription(item.optString("description"));
                newData.setPublishDate(item.optString("pubDate"));
                news.add(newData);
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return news;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值