2023-2更文1-okhttpclient的使用

193 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 1 天,点击查看活动详情

okhttpclient的使用

前文

okhttpclient是java开发中非常常用的一个http调用引用包,本文内容主要是关于okhttpclient的应用及使用中的注意事项。

创建okhttpclient的几种方式

创建httpclient对象,主要提供了以下三种方式:

  • new OkHttpClient()
  • new OkHttpClient.Builder()
  • okHttpclient.newBuilder()

以上三种方式各有其特殊之处。第一种方式为常规对象的创建,简单的使用new进行操作,而new出来的对象它所采用的参数为默认参数,如果需要变更则需要后续进行手动的修改。第二种方式则是在创建对象时,直接进行参数的指定,用自定义的参数取代默认的参数,满足自己的需求。第三种方式则是一种针对现有对象的定制化操作。当我们已经拥有了对象后,如果在某些场景需要进行配置参数的变更,则采用第三种方式,进行针对场景的配置信息自定义,实现不同场景中调用对象配置信息的不同。

另外,需要注意的是,当我们进行调用对象创建时,我们应该采用单例对象并对同一对象进行反复使用,由于不同对象都拥有自己的连接池和线程池,我们没必要进行对象反复创建导致资源的浪费,而是应该让不同的调用连接共享连接池和线程池。

okhttpclient调用时的应用

我们可以通过创建okhttpclient进行get、post、put、delete等类型请求的调用,并通过其提供的api进行调用参数、调用体、数据类型等内容进行封装,满足各场景的调用需求。

String result = null;
RequestBody requestBody = RequestBody.create(MediaType.parse("text/html;charset=utf-8"), data);
Request request = new Request.Builder().url(url).post(requestBody).build();
    Response response = OkHttpClientUtil.getOkHttpClient().newCall(request).execute();
    result = response.body().string();

上述代码为一段通过okhttpclient进行post请求调用的示例,调用中进行了请求body体的封装,实现具体的请求内容。

类似的,当我们需要进行get请求时,也是类似的使用方式。对于采用param方式传输的参数,可以直接拼接在我们需要的调用路径上进行调用即可。而当需要进行header信息的修改时,也可以直接通过addheader方法进行实现。通过对于api的应用,能够满足我们多数的调用需求。

总结

在使用okhttpclient过程中,我们需要注意采用单例模式进行创建,避免反复建立连接池和线程池,避免内存的浪费。而通过参数配置的设置和调用时请求内容的构建,也满足我们多数场景下的调用需求。