二、RESTFUL网路请求框Retrofit

Retrofit是一个高效的HTTP库,它封装了OkHttp,提供了注解驱动的网络请求方式。本文介绍了RESTFUL的HTTP请求方法,如GET、POST等,并详细讲解了Retrofit的注解使用,包括请求方法、请求头、请求参数和响应格式的注解。同时,给出了添加依赖、初始化和调用请求的方法步骤。
摘要由CSDN通过智能技术生成

Retrofit是一个高质量高效率的HTTP请求库。Retrofit内部依赖于OkHttp,它将OKHttp底层的代码和细节都封装了起来,功能上做了更多的扩展,比如返回结果的自动解析数据模型,网络引擎的切换,拦截器…

restFul是符合rest架构风格的网络API接口,完全承认Http是用于标识资源。restFul URL是面向资源的,可以唯一标识和定位资源。 对于该URL标识的资源做何种操作是由Http方法决定的。

rest请求方法有4种,包括get,post,put,delete.分别对应获取资源,添加资源,更新资源及删除资源.

作者:埋着头向前走寻找我自己
链接:https://www.jianshu.com/p/dfe3077ddbcd
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

1. 注解

retrofit注解驱动型上层网络请求框架,使用注解来简化请求,大体分为以下几类:

  • 用于标注网络请求方式的注解
  • 标记网络请求参数的注解
  • 用于标记网络请求和响应格式的注解

图片和部分文字转自https://www.songyubao.com/book/primary/network/Retrofit.html

retrofit注解

1.1请求方法注解

注解 说明
@GET get请求
@POST post请求
@PUT put请求
@DELETE delete请求
@PATCH patch请求,该请求是对put请求的补充,用于更新局部资源
@HEAD head请求
@OPTIONS option请求
@HTTP 通用注解,可以替换以上所有的注解,其拥有三个属性:method,path,hasBody

1.2 请求头注解

既可以标记在方法上面也可以标记在参数里面

注解 说明
@Headers 用于添加固定请求头,可以同时添加多个。通过该注解添加的请求头不会相互覆盖,而是共同存在
@Header 作为方法的参数传入,用于添加不固定值的Header,该注解会更新已有的请求头

1.3请求参数注解

名称 说明
@Body 多用于post请求发送非表单数据,比如想要以post方式传递json格式数据
@Filed 多用于post请求中表单字段,Filed和FieldMap需要FormUrlEncoded结合使用
@FiledMap 和@Filed作用一致,用于不确定表单参数
@Part 用于表单字段,Part和PartMap与Multipart注解结合使用,适合文件上传的情况
@PartMap 用于表单字段,默认接受的类型是Map,可用于实现多文件上传
@Path 用于url中的占位符
@Query 用于Get中指定参数
@QueryMap 和Query使用类似
@Url 指定请求路径

1.4请求和响应格式注解

名称 说明
@FormUrlEncoded 表示请求发送编码表单数据,每个键值对需要使用@Field注解
@Multipart 表示请求发送multipart数据,需要配合使用@Part
@Streaming 表示响应用字节流的形式返回.如果没使用该注解,默认会把数据全部载入到内存中.该注解在在下载大文件的特别有用

2 开始使用

step1: 添加依赖

app/build.gradle

implementation 'com.squareup.retrofit2:retrofit:2.3.0'
implementation 'com.squareup.retrofit2:converter-gson:2.3.0' //json转换

step2: 初始化

object FirstRetrofit {
   
    //OkHttpClient 对象
    private val okClient:OkHttpClient = OkHttpClient.Builder() //builder构建者设计模
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值