今天小编给大家分享一下SpringBoot中如何使用HTTP客户端工具Retrofit的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Retrofit是适用于Android
和Java
且类型安全的HTTP客户端工具,在Github上已经有39k+
Star。其最大的特性的是支持通过接口的方式发起HTTP请求,类似于我们用Feign调用微服务接口的那种方式。SpringBoot是使用最广泛的Java开发框架,但是Retrofit官方并没有提供专门的Starter。于是有位老哥就开发了retrofit-spring-boot-starter
,它实现了Retrofit与SpringBoot框架的快速整合,并且支持了诸多功能增强,极大简化开发。今天我们将使用这个第三方Starter来操作Retrofit。在SpringBoot中使用Retrofit是非常简单的,下面我们就来体验下。依赖集成有了第三方Starter的支持,集成Retrofit仅需一步,添加如下依赖即可。下面以调用mall-tiny-swagger
中的接口为例,我们来体验下Retrofit的基本使用。首先我们准备一个服务来方便远程调用,使用的是之前的mall-tiny-swagger
这个Demo,打开Swagger看下,里面有一个登录接口和需要登录认证的商品品牌CRUD接口,我们先来调用下登录接口试试,在application.yml
中配置好mall-tiny-swagger
的服务地址;再通过@RetrofitClient
声明一个Retrofit客户端,由于登录接口是通过POST表单形式调用的,这里使用到了@POST
和@FormUrlEncoded
注解;如果你不太明白这些注解是干嘛的,看下下面的表基本就懂了,更具体的话可以参考Retrofit官方文档;接下来在Controller中注入UmsAdminApi
,然后进行调用即可;为方便后续调用需要登录认证的接口,我创建了TokenHolder
这个类,把token存储到了Session中;接下来通过Swagger进行测试,调用接口就可以获取到远程服务返回的token了,访问地址:http://localhost:8086/swagger-ui/商品品牌管理接口,需要添加登录认证头才可以正常访问,我们可以使用Retrofit中的注解式拦截器来实现。首先创建一个注解式拦截器TokenInterceptor
继承BasePathMatchInterceptor
,然后在doIntercept
方法中给请求添加Authorization
头;创建调用品牌管理接口的客户端PmsBrandApi
,使用@Int免费云主机域名ercept
注解配置拦截器和拦截路径;再在Controller中注入PmsBrandApi
实例,并添加方法调用远程服务即可;在Swagger中调用接口进行测试,发现已经可以成功调用。如果你想给所有请求都加个请求头的话,可以使用全局拦截器。创建SourceInterceptor
类继承BaseGlobalInterceptor
接口,然后在Header中添加source
请求头。Retrofit的配置很多,下面我们讲讲日志打印、全局超时时间和全局请求重试这三种最常用的配置。日志打印 默认配置下Retrofit使用basic
日志策略,打印的日志非常简单;我们可以将application.yml
中的retrofit.global-log-strategy
属性修改为body
来打印最全日志;修改日志打印策略后,日志信息更全面了;Retrofit支持四种日志打印策略;NONE:不打印日志;BASIC:只打印日志请求记录;HEADERS:打印日志请求记录、请求和响应头信息;BODY:打印日志请求记录、请求和响应头信息、请求和响应体信息。有时候我们需要修改一下Retrofit的请求超时时间,可以通过如下配置实现。retrofit-spring-boot-starter
支持请求重试,可以通过如下配置实现。重试规则global-retry-rules
支持如下三种配置。RESPONSE_STATUS_NOT_2XX:响应状态码不是2xx时执行重试;OCCUR_IO_EXCEPTION:发生IO异常时执行重试;OCCUR_EXCEPTION:发生任意异常时执行重试。以上就是“SpringBoot中如何使用HTTP客户端工具Retrofit”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注百云主机行业资讯频道。
本篇内容介绍了“vue的空格报错如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! vue空格报错的解决办法:1、找到目录build下的webpack.ba…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。