Android HttpClient获取JSON数据并解析

来源:互联网 发布:网络硬件系统包括什么 编辑:程序博客网 时间:2024/06/11 21:47
/** * 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;    }}

0 0
原创粉丝点击