Retrofit简单使用

本文详细介绍了Retrofit的基础用法,包括@GET、@POST等注解的使用,以及@Query、@Field、@Header等参数传递方式。同时,讨论了同步和异步请求的执行,展示了创建Retrofit对象、定义接口和处理结果的步骤。此外,提到了Retrofit的@Http注解以及如何与RxJava结合使用。
摘要由CSDN通过智能技术生成

Retrofit学习笔记

Retrofit基础

  1. Retrofit 中使用注解的方式来区分请求类型,比如@GET("/record")表示一个GET请求,要以 / 开头,会拼接到基本URL后面,record为接口地址。各个格式和含义如下:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZeC7NRhR-1588412613915)(http://note.youdao.com/yws/res/3591/96266863020D44CB8C19005FFDCE4B5A)]

例如,GET请求(其他请求类似):

 @GET("/apistore/mobilenumber/mobilenumber")           
  Call<PhoneResult> getResult(@Header("apikey") String apikey, @Query("phone") String phone);                              
  1. 服务器接口类型
  • 直接请求型
@GET("/record")             
Call<PhoneResult> getResult();

组合后直接请求

@GET("/result/{id}")         //其中{id}中的id在实际使用时填写实际值即可.
Call<PhoneResult> getResult(@Path("id") String id);
  • 带参查询型
@GET("/otn/lcxxcx/query")              //某个接口
Call<Result> query(@Query("purpose_codes") String codes);
  • 带Header型
@POST("/info")
Call<Object> updateInfo(@Header("device") String device, @Header("version") int version,
                        @Field("id") String id);
  1. 注解

1)、Query注解

interface QueryGET{
    @GET("/sheet")
    String getString(@Query("name")String name,@Query("age") int age);
    }  
  • query 访问的参数会添加到路径(path)的后面。encodeNames=true表示对url的query进行url编码,同理还有encodeValues. 这2个的值默认都是true。
  • 实际访问的地址是“http://tieba.baidu.com/sheet?name=xxx&age=xxx ”

2)、Field和Part注解
我们也可以在post请求的时候发送form-data和multipart-data.
表单数据要使用@FormUrlEncoded注解.每一对键值对都要用@Field进行注解, 包括名字和value对象的值.

@FormUrlEncoded
@POST("/user/edit")
User updateUser(@Field("first_name") String first, @Field("last_name") String last);

用@Multipart注解来发送multipart-data,每一个part用@part注解.


@Multipart
@PUT("/user/photo")
User updateUser(@Part("photo") TypedFile photo, @Part("description") TypedString description);

3)、Header注解
header分为key和value都固定,静态Header注解方法和动态Header注解方法。注意header不会相互覆盖。

  • 静态header
interface FixedHeader{
    @Headers({                                          //静态Header,先写好
        "Accept: application/vnd.github.v3.full+json",
        "User-Agent: Retrofit-Sample-App"
    })
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vinson武

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值