OKHttp的简单使用 | 青训营笔记

243 阅读2分钟

OKHttp的简单使用 | 青训营笔记

这是我参与「第四届青训营 」笔记创作活动的第2天

OKHttp介绍

android网络框架之OKhttp

一个处理网络请求的开源项目,是安卓端最火热的轻量级框架。

OkHttp是一款十分好用的Android网络框架,尽管官方提供了UrlConnection,但是OkHttp依然是最为广泛使用的网络请求方式。如果有一定程度的英语阅读能力,建议直接去官网阅读官方文档。前往Okhttp官网 作为一款优秀的网络框架,Okhttp有以下特性:

支持HTTP/2,允许所有同一个主机地址的请求共享同一个socket连接 连接池减少请求延时 透明的GZIP压缩减少响应数据的大小 缓存响应内容,避免一些完全重复的请求 OkHttp支持任何Android 2.3以上平台,并且需要JDK 1.7以上。

导入okhttp

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

在项目的build.gradle里的dependencies里加入这行代码,就可以添加okhttp3依赖

Get请求

public void getMessage(String url) {
        OkHttpClient okHttpClient = new OkHttpClient.Builder().build();
        Request request = new Request.Builder().get().url(url).build();
        Call call = okHttpClient.newCall(request);
        try {
            Response execute = call.execute();
            } catch (IOException e) {
            e.printStackTrace();
         }
    }

首先我们创建okhttp客户端

也就是OKhttpClient的对象,new一个OKHttpClient.Builder().build();

然后创建Request对象,在这个步骤里首先要声明我们是get(),发送的是get请求

然后填上需要请求的url,最后build封装

然后创建一个call对象,将request封装进去,接下来用execute方法将request发送出去

我们去请求之后,对方肯定会返回一个响应,也就是response,我们就需要用一个response去接收这个返回的响应

这样一个http客户端就写完了

Post请求

public void getUserInfo(String url){
        OkHttpClient okHttpClient = new OkHttpClient.Builder().build();
        RequestBody requestBody = new FormBody.Builder().add("key" ,value)
                .add("key" ,value)
                .build();

        Request request = new Request.Builder().post(requestBody).url(url).build();
        Call call = okHttpClient.newCall(request);

                try {
                    Response execute = call.execute();
                } catch (IOException e) {
                    e.printStackTrace();
                }

    }

发送Post请求和发送get请求大体上是一样的,

首先还是创建一个okhttp客户端,接下来我们写request的时候写的是RequestBody

在RequestBody里封装好key-value,然后进行build,后面的步骤也就和get请求一样了