Retrofit新手常用注解
来源:互联网 发布:win7系统网络驱动下载 编辑:程序博客网 时间:2024/05/16 18:56
看到一篇博客讲Retrofit的各种注解,比较全面可以参考一下。
http://blog.csdn.net/qiang_xi/article/details/53959437
这里只讲一下常用的几个注解。
@POST,@GET,@Query
举个例子
//登录 @POST("api/user/auth") Call<TeacherBean> login(@Query("username") String username, @Query("password") String password);
这个是简单的登陆,所以只需要提供接口URL和传递的简单参数。
我们Log一下Request:
这里可以看到这样传递的参数是
?username=nanguangtailang&password=123 的格式
@Body,@Headers
举个例子
//登录 @Headers({"Content-Type: application/json","Accept: application/json"})//需要添加头 @POST("api/user/auth") Call<StudentBean> login(@Body RequestBody json);//传入的参数为RequestBody
由于这个接口传的是json格式的用户名和密码,所以用到了@Headers这个注解来添加了头,注明了传递的格式为json。
这里添加多个请求头,直接在后面加”,“ 就可以。
【关于怎么传递json参数上一篇博客写了可以参考】
并且使用了@Body来传递参数,@Body这个注解可以直接传递实体类。retrofit会通过convert把该实体序列化并将序列化后的结果直接作为请求体发送出去。
@Header
举个例子,由于接口需要添加验证请求头,身份验证失败将无法获取响应内容,在service中加入@Header(“Authorization”) String auth 参数。
//获取班级 @GET("/api/group") Call<List<GroupBean>> getGroup(@Header("Authorization") String auth);
这里@Header(“Authorization”),Authorization是你需要添加进头的信息名称。添加的头为空时,不会进行添加。
@Path
举个例子,这里groupId是动态的。所以使用@Path注解,可以动态的改变接口,用法也比较简单,将groupId作为参数传进来就可以。
//获取班级里的学生 @GET("/api/group/{groupId}/students") Call<List<StudentBean>> getStudent(@Header("Authorization") String auth, @Path("groupId") String groupId);
@Multipart ,@Part,@PartMap
举个例子,一般用来上传文件或图片
@Multipart 标记一个请求是multipart/form-data类型,需要和@POST一同使用,参数可以是 MultipartBody.Part 或 RequestBody 。
@Part 注解: 代表Multipart里的一项数据,即用${bound}分隔的内容块。
http://www.tuicool.com/articles/zQrU3u
这里详细讲了多文件上传的写法。
@Multipart@POST("iu/uploadPicture")Call<ResponseBody> uploadPicture( @Part("description") RequestBody description, @Part MultipartBody.Part file);
@PartMap是作用于方法的参数,以map的方式定义Multipart请求的每个part。当有多个参数的时候就可以使用PartMap组成Map后传递。注:每个值不能为空。
- Retrofit新手常用注解
- Retrofit注解
- Retrofit之Query注解
- Retrofit 注解字段说明
- Retrofit 注解 详解
- retrofit 注解含义
- Retrofit的注解使用
- retrofit 注解学习
- Retrofit 注解使用
- Retrofit 常用参数使用方式和Url处理注解汇总(一)
- Retrofit 2.0 个注解详解
- 注解+代理 模仿 Retrofit 传参
- Retrofit常见注解全解析
- Retrofit常见注解全解析
- Retrofit 2.0 注解分类详解
- Retrofit常用方法入门
- 登陆网络请求的Retrofit实现【新手】
- 常用注解
- Yarn-cluster 与 Yarn-client的区别
- iOS基石——UIIage
- Execution failed for task ':app:transformNative_libsWithStripDebugSymbolForRelease'.
- wait() 和 sleep()
- 20170627-BTC、ETH、LTC暴躁高盛大摩看空,仍有业内人士很乐观
- Retrofit新手常用注解
- AS之Findbugs
- 普通的程序员与优秀的程序员的一些差别:
- JS常用代码大全
- php 笔记 (早前的,很乱)
- 黑产:手机黑卡调查
- iOS UILabel设置中划线不能包含中文
- py 一些built-in类
- hihocoder 1162 : 骨牌覆盖问题·三 矩阵快速幂