OKHttp使用解析

OKHttp 是一套处理 HTTP 网络请求的依赖库,由 Square 公司设计研发并开源,目前可以在 Java 和 Kotlin 中使用,现在几乎已经占据了所有的网络请求操作。

OKHttp的基本使用:

首先想要使用OKHttp,需要创建一个OkHttpClient的实例,作为其客户端。

OkHttpClient client=new OkHttpClient();

之后由于我们想要发起Http请求,所有需要创建一个Request对象:

Request request=new Request.Builder().build();

这里我们使用Request的Builder方法创建了一个空的Request对象,并没用什么实际作用,但我们可以在最终的build()方法前连缀很多其他方法来丰富这个Request对象。比如我们添加 url()方法来指定网络地址:

Request request = new Request.Builder()
                 .url("https://www.baidu.com")
                 .build()

之后我们就可以调用OkHttpClient的newCall()方法来创建一个Call对象,并调用它的execute()方法来发送请求并获取服务器返回的数据:

 Call call=okHttpClient.newCall(request);
 Response response=call.execute();

这里是Respnse对象就是返回的数据了,这样我们就能使用body().string()方法来得到具体内容:

String data=response.body().string()

这样我们就成功进行GET请求了。

但如果是发起一条POST请求,会稍微复杂点,我们需要创建请求体 FormBody,首先,我们先创建它的构建器:

Builder builder = new FormBody.Builder();

之后我们需要将数据使用add()放入其中并使用build()方法构建:

builder.add("key1","val1")
       .add("key2","val2");
FormBody formbody=builder.build();

然后就可以在Request build构建之前使用post()方法传入了:

Request request = new Request.Builder()
                 .url("https://www.baidu.com")
                 .post(formbody)
                 .build()