AsyncTask+httpClient请求数据

  AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() {

        //运行在后台...类似子线程,,,做耗时的操作(访问网络的操作)
        @Override
        protected String doInBackground(Void... voids) {
            try {
                /**
                 * httpClient已经过时了,在使用的时候需要在build,grandle下面加一行代码,去支持httpClient
                 */

                SSLSocketFactory.getSocketFactory().setHostnameVerifier(new AllowAllHostnameVerifier());

                String path2="https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page=1";

                //1.创建一个客户端对象
                HttpClient client = new DefaultHttpClient();
                //2.创建一个请求的对象...请求的对象可以是get也可以是post
                HttpGet httpGet = new HttpGet(path2);

                //3.客户端对象执行get请求....返回值是一个响应的对象
                HttpResponse httpResponse = client.execute(httpGet);

                //获取状态码
                int statusCode = httpResponse.getStatusLine().getStatusCode();
                if (statusCode == 200) {
                    //获取响应的实体内容...字节流...先获取实体内容的对象...在获取内容
                    InputStream inputStream = httpResponse.getEntity().getContent();

                    String json = streamToString(inputStream, "utf-8");

                    //返回
                    return json;
                }

            } catch (Exception e) {
                e.printStackTrace();
            }


            return null;
        }

        //接收到doInBackground发送回来的数据....处于主线程,,,更新界面的操作写在这里
        @Override
        protected void onPostExecute(String s) {//s就是doInBackground返回的json数据

            //在这里接收到doInBackground返回的json数据,,,解析设置适配器
            Gson gson = new Gson();

            DataDataBean dataDataBean = gson.fromJson(s, DataDataBean.class);

            List<DataDataBean.NewslistBean> list = dataDataBean.getNewslist();

            //设置适配器
            MyAdapter myAdapter = new MyAdapter(list, MainActivity.this);

            lv.setAdapter(myAdapter);



        }
    };

    /**
     * 异步任务要执行,,,需要手动的去调用excute方法
     */
    asyncTask.execute();


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值