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();
}
}
}