HttpURLConnection网络解析

关于HttpURLConnection网络解析的使用

*思想:

  1. 创建URL通过HTTPURLConnection得到数据
  2. 解析出来数据
  3. 解析出来数据
  4. 将数据通过hanlder把数据发送到主线程
  5. 拿到数据并处理数据

注意事项:
引入依赖和加权限
依赖:

  • 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里边的参数就是你实例化的控件

猜你喜欢

转载自blog.csdn.net/qq_43154806/article/details/82968811