关于HttpURLConnection网络解析的使用
*思想:
- 创建URL通过HTTPURLConnection得到数据
- 解析出来数据
- 解析出来数据
- 将数据通过hanlder把数据发送到主线程
- 拿到数据并处理数据
注意事项:
引入依赖和加权限
依赖:
- implementation ‘com.google.code.gson:gson:2.2.4’
- implementation ‘com.google.guava:guava:16.0.1’
- implementation ‘com.squareup.picasso:picasso:2.71828’
权限:
通过这个实现网络请求
<uses-permission android:name=“android.permission.INTERNET” /
第一步:
//创建线程实现网络解析数据
new Thread(){
@Override
public void run() {
super.run();
try {
//输入接口
URL url = new URL("https://www.toutiao.com/api/pc/focus/");
//打开连接
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
//连接超时
connection.setConnectTimeout(5000);
//读取超时
if(connection.getResponseCode() == HttpURLConnection.HTTP_OK){
String data = CharStreams.toString(new InputStreamReader(connection.getInputStream(), "UTF-8"));
Message obtain = Message.obtain();
obtain.obj = data;
//将数据通过Handler实现线程间的通信
handler.sendMessage(obtain);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
第二步
//创建Bean包
第三步
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
String data = (String) msg.obj;
Gson gson = new Gson();
//得到数据
GsonBean bean = gson.fromJson(data, GsonBean.class);
}
};
在这里扩展一个Picasso的使用
Picasso.get().load(“http:”+list.get(i).getImage_url()).into(mv.img1);
只需要注意into里边的参数就是你实例化的控件