新闻资讯
看你所看,想你所想

RETROFI程式

RETROFI程式

Retrofit是Square公司开源的一个高质量高效率的HTTP库,github上面star数量最多的Android网路库就是这个。底层封装了okhttp,JakeWharton大神的经典作品之一。

基本介绍

  • 中文名:RETROFI程式
  • 外文名:RETROFIT program

基本用法

定义一个接收数据的实体类

如右图所示:
接收数据的实体类接收数据的实体类

定义一个网路接口

GitHubService 非常简单,不过却做了很多工作,配置了:
请求方式:@GET
请求的相对路径:"users/{user}/repos" 和Retrofit中的baseUrl可以拼成一个完整的URL路径
请求的方法名字:listRepos
请求参数:@Path("user") String user
返回值:Call<List<Repo>> 返回一个Call对象,Call对象用于后面的网路请求。
定义网路接口定义网路接口
GitHubService 这个接口中使用了很多注解,后面Retrofit会通过这些注解,把这个接口转换成可调用的对象类。Retrofit中总共有四十多个类,其中一半多是注解类。

创建Retrofit对象和service 对象

代码如下:
Retrofit对象和service对象Retrofit对象和service对象

创建Call对象并执行异步请求

代码如下:
Call对象Call对象

RETROFI注解类

请求方式注解

@GET @POST、@PUT、@DELETE、@PATCH、@OPTIONS、@HTTP(自定义方式)

请求类型注解

@FormUrlEncoded、@Multipart、@Streaming
@FormUrlEncoded form表单请求,对应的 Content_Type:"application/x-www-form-urlencoded" 参数使用 @Field 或者 @FieldMap修饰。
@Multipart 支持上传档案的form表单。对应的 Content_Type:"multipart/form_data" 参数使用@Part修饰 档案参数是okhttp中的RequestBody。
@Streaming 通过流的方式返迴响应。当返回数据较大的时候使用。或者用于大档案的下载。

请求参数注解

@Query 、@QueryMap、@Body、@Field、@FieldMap、@Part、@PartMap 修饰方法参数
@Query :用于添加查询参数 拼接参数如:name=张三&six=男&page=1。 参数值可以为空。
@QueryMap : 每一项发键和值都不能为空。
@Body: 可以直接传一个对象 参数不能为null。可以上传档案 其参数是okhttp中的MultipartBody 类。
@Field 用String.valueOf()把参数值转换为String,然后践行URL编码,当参数值为null时,会自动忽略。
@FieldMap: 每一项的键和值都不能为空。
@Part:用于定义Multipart请求的每个part 参数值可以为空,为空时,则忽略。
@PartMap 每一项的键和值都不能为空。

其它注解

@Path、@Header、@Headers、@Url
@Path:用于方法的参数 用于替换url中的参数,参数的值不能为空。
@Header 用于添加请求头 如果请求头部固定可以使用这个添加。可以为空,当为空时,会自动忽略。
@Headers 用于添加一个或多个请求头中。
@Url: 用于添加请求的接口地址。

转载请注明出处海之美文 » RETROFI程式

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:ailianmeng11@163.com