暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SpringBoot Java后端实现okhttp3超时设置

满目山河m 2021-10-19
1950






前言

okhttp是一个处理网络请求的开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司开发。OkHttp 是一个默认高效的 HTTP 客户端。OkHttp3是Java和Android都能用,Android还有一个著名网络库叫Volley,那个只有Android能用。

  • HTTP/2 支持允许对同一主机的所有请求共享一个套接字。

  • 连接池减少了请求延迟(如果 HTTP/2 不可用)。

  • 透明 GZIP 可缩小下载大小。

  • 响应缓存完全避免网络重复请求。

OkHttp在网络出现问题时坚持:它会从常见的连接问题中默默恢复。如果您的服务有多个 IP 地址,如果第一次连接失败,OkHttp将尝试备用地址。这对于在冗余数据中心托管的 IPv4+IPv6 和服务是必需的。OkHttp 支持现代 TLS 功能(TLS1.3、ALPN、证书锁定)。它可以配置为回退以实现广泛的连接。


使用 OkHttp 很容易。它的请求/响应 API 设计有流畅的构建器和不变性。它支持同步阻塞调用和带有回调的异步调用。

导入

maven

    <!-- ok http -->
    <dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>4.2.2</version>
    </dependency>


    gradle方式

      compile 'com.squareup.okhttp3:okhttp:4.2.2'

      okhttp3方法简介

      一共可以设置5个超时时间分别如下:关于OkHttp的超时时间


        OkHttpClient client = new OkHttpClient.Builder()
        .connectTimeout(30, TimeUnit.SECONDS)//连接超时(单位:秒)
        .callTimeout(120, TimeUnit.SECONDS)//整个流程耗费的超时时间(单位:秒)--很少人使用
        .pingInterval(5, TimeUnit.SECONDS)//websocket轮训间隔(单位:秒)
        .readTimeout(60, TimeUnit.SECONDS)//读取超时(单位:秒)
        .writeTimeout(60, TimeUnit.SECONDS)//写入超时(单位:秒)
        .build();



        两种版本超时设置用法

        okhttp3要设置client.Builder

          OkHttpClient client = new OkHttpClient.Builder()
          .connectTimeout(15, TimeUnit.SECONDS)
          .readTimeout(15,TimeUnit.SECONDS)
          .writeTimeout(15,TimeUnit.SECONDS)
          .build();


          以前的版本设置client

            client .connectTimeout(15, TimeUnit.SECONDS)
            .readTimeout(15,TimeUnit.SECONDS)
            .writeTimeout(15,TimeUnit.SECONDS)













            文章转载自满目山河m,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

            评论