虽然现在安卓爆炸了,但是哪行那业就业火爆两年后不爆炸呢?又能赚钱又舒服的工作那是属于关系户,自己一般家庭就别想那么多了,好好学,找个能吃饱饭的工作再一步步的提升就行了,以后的事情,谁知道呢。
开始路程把
因为以前看的黑马视频现在都加密,现在编程技术的更新换代日新月异,现在只好舍弃去某网看比较新的内容。
从两月前的头开始补吧,一步一步来,多想想叔叔怎么对你的,对想想爸妈在家干什么工作的!别好逸恶劳了,这样只会后悔终身,勉励。
这只是个人学习的一个记录,以前从来不用博客的,现在尝试记录下自己的路程吧。如果看到我太监了,也许是换行业了。
课程介绍:
HttpUrlConnection 网络接连 分为两种: get请求 和post请求
从服务器 请求数据:
1:实例化一个url对象
2:获取HttpConnection的实例
3:设置请求连接的相关属性
4:获取响应吗,判断是否连接成功
5:读取输入流并且解析数据
/**
* /5个步骤
* 1:获取url对象实例
* 2:创建HttpUrlConnection对象
* 3:设置HttpUrlConnection相关的参数
* 4: 获取响应吗 根据正确的响应?码做相关的读取
* 5:读取获取到的数据
*/
new Thread(new Runnable() {
@Override
public void run() {
try {
URL url = new URL("http://www.imooc.com/api/teacher?type=3&cid=1");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//设置请求方式GET
conn.setRequestMethod("GET");
//设置读取超时6秒
conn.setReadTimeout(6000);
//网络连接成功
if(conn.getResponseCode() == 200){
//获取输入流对象
InputStream inputStream = conn.getInputStream();
//记录读取的长度
int len = 0;
byte[] b = new byte[1024*8];
//建立缓存流保存读取的数据
ByteArrayOutputStream baos = new ByteArrayOutputStream();
while ((len = inputStream.read(b)) > -1){
//每次读取大小,从0开始,最后结束位置
baos.write(b,0,len);
}
String meg = baos.toString();
Log.e("TAG",meg);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();JsonObject
1:原生解析Json数据
2:相关工具 如Gson 等
//原生Object解析json数据 []集合 {}对象
//msg 是一个对象的json数据
//JSONObject 对象
JSONObject obj = new JSONObject(msg);
//获取里面属性
int status =obj.getInt("status");
String msg2 =obj.getString("msg");
Log.e("TAG","status:" +status);
Log.e("TAG","msg2:" +msg2);
//获取里面对象
JSONObject data = obj.getJSONObject("data");
String author =data.getString("author");
String title = data.getString("title");
String content = data.getString("content");
Log.e("TAG","作者:" +author +"标题:" +title + "内容"+ content);
- Json的解析
JsonObject
1:原生解析Json数据
2:相关工具 如Gson 等
//原生Object解析json数据 []集合 {}对象
//msg 是一个对象的json数据
//JSONObject 对象
JSONObject obj = new JSONObject(msg);
//获取里面属性
int status =obj.getInt("status");
String msg2 =obj.getString("msg");
Log.e("TAG","status:" +status);
Log.e("TAG","msg2:" +msg2);
//获取里面对象
JSONObject data = obj.getJSONObject("data");
String author =data.getString("author");
String title = data.getString("title");
String content = data.getString("content");
Log.e("TAG","作者:" +author +"标题:" +title + "内容"+ content);
更新界面不能在子线程里面,使用Handler机制 发送一个消息,把对象传递到主线程里面更新UI
//创建全局Handler对象 重建handlerMessage方法 在子线程用msg传递过来的数据更新UI
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//获取msg里面的信息 主线程里面更新UI界面
Content c = (Content) msg.obj;
author.setText(c.author);
title.setText(c.title);
content.setText(c.content);
}
};
----------下面是在子线程中
//获取一个message对象
Message message = handler.obtainMessage();
Content c = new Content(author,title,content);
//保存对象到message
message.obj =c ;
//发送消息
handler.sendMessage(message);