package com.bawei.http;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import com.bawei.bean.Bean;
import com.bawei.bean.CabinInfos;
import com.bawei.bean.Result;
import com.google.gson.Gson;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView tv;
private Gson gson;
private List<CabinInfos> cabinInfos;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取控件
tv = (TextView) findViewById(R.id.textView);
gson = new Gson();
new Thread() {
@Override
public void run() {
super.run();
getData();
}
}.start();
}
/**
* 联网请求数据
*
*/
private void getData() {
try {
// 得到URL对象,设置访问地址 这里是百度官网
URL url = new URL("http://169.254.89.125:8080/bawei/plane_tickets.json");
// 得到HttpURLConnection对象
HttpURLConnection httpURLConnection = (HttpURLConnection) url
.openConnection();
// 设置请求方式 两种------>POST/GET
httpURLConnection.setRequestMethod("POST");
// 设置连接超时
httpURLConnection.setConnectTimeout(5000);
// 设置读取超时
httpURLConnection.setReadTimeout(5000);
// 正式联网
httpURLConnection.connect();
// 获取状态码 ,也可以看作是响应码 200------->连接成功
int responseCode = httpURLConnection.getResponseCode();
if (responseCode == 200) {
Log.d("lcr", "联网请求成功");
// 获取包含数据的输入流
InputStream inputStream = httpURLConnection.getInputStream();
Bean bean = gson.fromJson(new InputStreamReader(
inputStream, "gbk"), Bean.class);
List<Result> result = bean.getResult();
for (Result result2 : result) {
cabinInfos = result2.getCabinInfos();
Log.d("lcr", cabinInfos.toString());
}
// 缓冲流
BufferedReader br = new BufferedReader(new InputStreamReader(
inputStream, "gbk"));
// 记录每一行读取的数据
// 拼接数据
final StringBuffer buffer = new StringBuffer();
while (true) {
String data = br.readLine();
if (data != null) {
buffer.append(data);
} else {
break;
}
}
runOnUiThread(new Runnable() {
@Override
public void run() {
tv.setText(cabinInfos.toString());
}
});
} else {
Log.d("lcr", "连网失败");
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
HttpURLConnection请求数据
最新推荐文章于 2021-11-20 15:26:47 发布