android--网络编程--okhttp的使用

<android第一行代码(第2版)p329>

在dependencies闭包中添加如下内容:
我现在是用的AndroidStudio3.4,后期新版本添加依赖的方式可能有变动,如果下面这个不能用可以去百度查一下对应版本如何添加依赖。

implementation 'com.squareup.okhttp3:okhttp:3.4.1'

发起一条HTTP请求
0.若发送的是post请求,先构建一个RequestBody对象来存放待提交的参数。(若为get请求,直接忽略这一步。)

 RequestBody requestBody = new FormBody.Builder()
                            .add("username","admin")
                            .add("password","123456")
                            .build();

1.创建一个Request对象,在最后的build方法之前连缀其他方法来丰富这个Request对象。(比如,此处用url方法来设置目标网址)

 Request request = new Request.Builder()
                            .url("http://www.baidu.com")
                            //若是get请求不需要这一句
                            .post(requestBody)
                            .build();

2.调用okhttpclien的newcall方法来创建一个call对象,并调用它的execute方法来发送请求并获取服务器返回的数据。

 OkHttpClient client = new OkHttpClient();
  Response response = null;
                    //发送请求并获取服务器返回的数据
                    response = client.newCall(request).execute();

3.得到返回的具体内容

   String responseData = response.body().string();

okhttp的最佳写法:

 public static void  sendOkHttpRequest(String address, okhttp3.Callback callback){
        OkHttpClient client = new OkHttpClient();
        Request request = new Request.Builder()
                .url(address)
                .build();
        client.newCall(request).enqueue(callback);
    }
 public static void main(String[] args) {

        /**
         * 注意:回调接口都是在子线程中进行的,因此不可以执行任何UI操作,除非用runOnUiThread()进行线程切换
         */
        HttpUtil.sendOkHttpRequest("http://www.baidu.com", new okhttp3.Callback(){

            @Override
            public void onFailure(Call call, IOException e) {
                //在这里对异常情况进行处理
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                //得到服务器返回的具体内容
                String responseData = response.body().string();
            }
        });
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叮叮当当0543

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值