Retrofit
2019-10-23 19:04:22 14 举报
AI智能生成
Android Retrofit 使用说明
作者其他创作
大纲/内容
注解分类
HTTP请求注解
GET
POST
PUT
DELETE
PATCH
OPTIONS
HTTP
标记注解
FormUrlEncoded
@FormUrlEncoded注解来标明这是一个表单请求
Multipart
@Multipart注解表示允许多个@Part
Streaming
参数注解
Header
Headers
Body
Path
Field
FieldMap
Part
单文件上传
示例
PartMap
多文件上传
示例
Query
QueryMap
返回String
配置
implementation 'com.squareup.retrofit2:converter-scalars:2.0.0'
接口
Call类型定义为String
代码
基本用法
使用前准备工作
配置build.greadle
implementation 'com.squareup.retrofit2:retrofit:2.1.0'
implementation 'com.squareup.retrofit2:converter-gson:2.1.0'
AndroidManifest增加网络权限
<uses-permission android:name="android.permission.INTERNET"/>
GET请求访问网络
请求模式
异步请求 call.enqueue();
同步请求 call.excute();
请求网络中断 call.cancel();
关键字
@GET
简介
@GET请求方式来访问网络
示例
bean
IpModel
IpData
Ip
interface
IpService
注:@Headers
支持编码类型 "Accept-Encoding: application/json"
用户代理,防止爬虫而请求不通过"User-Agent: retrofit"
method
错误
报错:com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 19 path $.data
结局:添加@Hearders
@Path
简介
@Path动态配置URL地址
示例
interface
IpServiceForPath
在GET注解中包含了{path},它对应着@Path注解中的"path",而用来替换{path}的正是要传入的String path的值
method
@Query
简介
@Query动态指定查询条件
示例
interface
IpServiceForQuery
method
@QueryMap
简介
@QueryMap动态指定查询条件组
示例
interface
IpServiceForQueryMap
method
POST请求访问网络
关键字
@POST
简介
@POST请求方式来访问网络
示例
interface
IpServiceForPost
method
@Field
简介
传输数据类型为键值对
@Field注解来表示所对应的String类型数据的键,从而组成一组键值对进行传递
@Body
简介
传输数据类型JSON字符串
用POST方式将JSON字符串作为请求体发送到服务器
示例
interface
IpServiceForPostBody
method
消息报头Header
@Header
简介
为了防止攻击或过滤掉不安全的访问,或者添加特殊加密访问等
以便减轻服务器压力和保证请求安全,通常会在消息报头中携带一些特殊的消息处理
添加多个消息报头,用{}包含起来
方式
静态
示例
动态
示例
0 条评论
下一页