okHttp3的简单使用

2020-03-13  本文已影响0人  132xin

在使用之前在grale(app)中添加依赖

implementation 'com.squareup.okhttp3:okhttp:3.10.0'//版本可以到官网上查看最新的

1.1异步Get请求

  • 创建一个OkHttpClient的对象
  • 构造Request对象
  • 构建一个Call对象
  • 通过call.enqueue(new CallBack(){})方法提交异步请求
 //okHttp3的异步get的请求
                String url="http://www.baidu.com";
                OkHttpClient okHttpClient=new OkHttpClient();
                final Request request=new Request.Builder().url(url)
                        .get()//默认就是get请求,可以不写
                        .build();
                Call call=okHttpClient.newCall(request);
                call.enqueue(new Callback(){

                    @Override
                    public void onFailure(Call call, IOException e) {
                         //请求失败的处理
                    }

                    @Override
                    public void onResponse(Call call, Response response) throws IOException {
                           //请求成功的处理
                    }
                });

1.2同步Get请求

  • 创建一个OkHttpClient的对象
  • 构造Request对象
  • 构建一个Call对象
  • 同步的方式会阻塞调用线程,所一需要在子线程中执行,否则可能会引起ANR异常。Android3.0以后已经步允许在子线程访问网络。最后同call.execute()进行提交。
//同步Get请求
                String url="http://www.baidu.com";
                OkHttpClient okHttpClient=new OkHttpClient();
                Request request=new Request.Builder().url(url).build();
                final Call call=okHttpClient.newCall(request);
                //创建一个子线程
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        //获得响应的对象
                        try {
                            Response response=call.execute();
                            //对象响应的Response对象进行处理
                        } catch (IOException e) {
                            e.printStackTrace();
                        }

                    }
                });

参考链接:https://www.jianshu.com/p/da4a806e599b
https://www.jianshu.com/p/37e26f4ea57b

上一篇 下一篇

猜你喜欢

热点阅读