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 超能实践

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容