Retrofit2源码学习之实践整理

综述

归纳一下Retrofit2实践和问题

注解类的使用

@ HTTP,@Path
    @HTTP(method = "GET",path="topics/{id}",hasBody = false)
    Call<ResponseBody> getopics(@Path("id") String id);
@Header,@Headers,@HeaderMap
    @Headers({
            "User-Agent:android",
            "Cache-Control:public,max-age=120",
    })
    @GET("/topics/{id}")
    Call<ResponseBody> postExample(@HeaderMap Map map,@Header("token") String token,@Path("id") String id);
@ FormUrlEncoded,@Field,@ FieldMap 配置参数
    @FormUrlEncoded
    @POST("/topics")
    Call<ResponseBody> postExample(@FieldMap Map map, @Field("key") String value,@Body User user );
@Multipart,@PartMap,@Part 文件表单上传
    @Multipart
    @POST("mobile/upload")
    Call<ResponseBody> upload(@PartMap Map<String, MultipartBody.Part> map,@Part MultipartBody.Part file);
@Query @QueryMap @QueryName 配置查询
    @GET("/topics")
    Call<ResponseBody> getopics(@Query("id") String id, @QueryMap Map map);
@Url , @Streaming 文件下载等
    @Streaming
    @GET
    Call<ResponseBody> downloadFileByDynamicUrlAsync(@Url String downloadUrl);

配置公共参数

2.x版本是通过自定义OkHttp拦截器实现
Retrofit2 — 参数拦截器

配置Cookie参数

建议使用OkHttp的cookie管理
OkHttp3实现Cookies管理及持久化

扩展

Retrofit 2.0 超能实践

    原文作者:辰静暮夕
    原文地址: https://www.jianshu.com/p/75add83f38a2
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞