美文网首页
网络请求Retrofit介绍

网络请求Retrofit介绍

作者: 浮名虚誉架构师 | 来源:发表于2017-12-15 15:30 被阅读0次

    Retreofit是一个适用于 Android 和 Java 的类型安全的 HTTP 客户端。特别说明Retrofit网络请求本质是有OkHttp完成的,而Retrofit仅负责网络请求接口的封装

    使用步骤

    添加网络请求权限

    <uses-permission android:name="android.permission.INTERNET"/>

    添加第三方库依赖

    implementation 'com.squareup.retrofit2:retrofit:XXX' 

     implementation 'com.squareup.retrofit2:converter-scalars:XXX'

    创建用于描述请求的接口

    进行请求


    网络请求方法

    @GET、@POST、@PUT、@DELETE、@HEAD

    以上方法分别对应 HTTP中的网络请求方式, 每个注解后面都可以设置一个URL,也可以不设置

    标记类

    a.FormUrlEncoded

    作用:表示发送form-encoded的数据

    注意:每个键值对都需要用@Filed来注解键名,随后的对象需要提供值。

    b.Multipart

    作用:表示发送form-encoded的数据(适用于 有文件 上传的场景)

    注意:每个键值对都需要用@part来注解键名,随后对象需要提供值

    c.@Streaming

    作用:表示返回的数据以流的形式返回,场用于大文件传输的场景

    注意:url由于是可变的,因此用 @URL 注解符号来进行指定,大文件官方建议用 @Streaming 来进行注解,不然会出现IO异常,小文件可以忽略不注入。如果想进行断点续传的话 可以在此加入header

    网络请求参数

    a.@Header & @Headers

    作用:添加请求头

    b.@Body

    作用:以Post方式传递自定义数据类型给服务器

    注意: 如果提交的是一个Map,那么作用相当于@Field,不过Map要经过FormBody.Builder 类处理成为符合 Okhttp 格式的表单

    c.Field&FieldMap

    作用:发送 Post请求 时提交请求的表单字段

    注意:与 @FormUrlEncoded 注解配合使用

    d.@Part & @PartMap

    作用:发送的Post请求时提交的表单字段

    注意:与 @Multipart 注解配合使用

    与@Field的区别:功能相同,但携带的参数类型更加丰富,包括数据流,所以适用于 有文件上传 的场景

    e.@Query和@QueryMap

    作用:用于 @GET 方法的查询参数(Query = Url 中 ‘?’ 后面的 key-value)

    使用:和上面的两个相同

    f. @Path

    作用:URL的省缺值

    g.@Url

    作用:直接传入一个请求的URL变量

    相关文章

      网友评论

          本文标题:网络请求Retrofit介绍

          本文链接:https://www.haomeiwen.com/subject/mvrdwxtx.html