使用 AsyncTask 异步请求网络数据

package com.ce.myasynctask;

import java.io.IOException;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.util.EntityUtils;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.ListView;

import com.baway.test.vo.Data;
import com.baway.test.vo.SuperClass;
import com.google.gson.Gson;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }

    private void initView() {
        // 找到控件
        ListView listview = (ListView) findViewById(R.id.listview);

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

            @Override
            protected String doInBackground(Void... params) {
                String result = null;
                // 请求数据
                HttpGet get = new HttpGet(
                        "http://m.yunifang.com/yunifang/mobile/goods/getall?random=9949&encode=6c2154232994e7d36ad461e3caa68ca7");
                HttpParams parms = new BasicHttpParams();
                HttpConnectionParams.setConnectionTimeout(parms, 5000);
                HttpConnectionParams.setSoTimeout(parms, 5000);
                HttpClient client = new DefaultHttpClient(parms);
                HttpResponse execute;
                try {
                    execute = client.execute(get);
                    if (execute.getStatusLine().getStatusCode() == 200) {
                        HttpEntity entity = execute.getEntity();
                        result = EntityUtils.toString(entity, "utf-8");

                    }
                } catch (ClientProtocolException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                return result;
            }

            @Override
            protected void onPostExecute(String result) {
                Gson gson = new Gson();
                SuperClass json = gson.fromJson(result, SuperClass.class);

                List<Data> list = json.getData();

                System.out.println("集合+++++++" + list);
            }

        };

        asyncTask.execute(new Void[] {});

    }

}

转载于:https://www.cnblogs.com/weiyangge/p/5383305.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值