HttpURLConnection请求网络

package com.example.android_02_httpapi;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.ListView;
import android.widget.Toast;

import com.bwie.bean.Data;
import com.bwie.bean.Result;
import com.bwie.bean.Root;
import com.google.gson.Gson;

public class MainActivity extends Activity {
private List list = new ArrayList();
private ListView lv;
private Gson gson;
private Root root;
private String path = “http://japi.juhe.cn/book/recommend.from?key=02756aba5ce09e653b95b8af9fe8442d&cat=1&ranks=1“;
private Handler handler = new Handler() {

    @Override
    public void handleMessage(Message msg) {
        // TODO Auto-generated method stub
        Result result = (Result) msg.obj;
        //遍历
        for(Data data:result.getData()){
            System.out.println(data);
            Log.i("zzz", data+"");
        }
        lv.setAdapter(new Myadapter(MainActivity.this,list));

    }

};
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    lv = (ListView)findViewById(R.id.lv);

    new Thread() {

        @Override
        public void run() {
            // TODO Auto-generated method stub
            getDate();
        }

    }.start();
}

private void getDate() {
    // TODO Auto-generated method stub
    try {
        URL url = new URL(path);
        HttpURLConnection connection = (HttpURLConnection) url
                .openConnection();
        // 设置连接超时
        connection.setConnectTimeout(5000);
        // 设置读取方式
        connection.setReadTimeout(5000);
        // 设置请求方式
        connection.setRequestMethod("POST");
        // 正式连接网络
        connection.connect();
        // 如果响应吗为200代表请求成功
        if (connection.getResponseCode() == 200) {
            InputStream inputStream = connection.getInputStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(
                    inputStream, "utf-8"));
            String str;
            StringBuffer sb = new StringBuffer();
            while ((str = br.readLine()) != null) {
                sb.append(str);
            }
            String data  = sb.toString();
            gson = new Gson();
            root = gson.fromJson(data, Root.class);
            list = root.getResult().getData();
            // 发送给线程
            Message msg = Message.obtain();
            msg.obj = root;
            handler.sendMessage(msg);
        } else {
            Toast.makeText(MainActivity.this, "联网请求失败", 0).show();
        }
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值