下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】怎么使用AndroidRetrofit
本篇内容主要讲解“怎么使用AndroidRetrofit”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让在下来带大家学习“怎么使用AndroidRetrofit”吧!关于Retrofit的学习,我算是比较晚的了,而现在Retrofit已经是Android非常流行的网络请求框架了。之前,我没有学过Retrofit,但最近公司的新项目使用了Retrofit、Rxjava和OkHttp来进行封装,使用起来非常简便,增加代码的美观程度,也降低了耦合度,这是一个非常棒的框架,特别是这三者一起使用。简介Retrofit是Square公司开发的一款针对Android网络请求的框架,现在已经更新到2.3版本了。Retrofit的最大特点是使用运行时注解的方式提供功能。Retrofit的使用关于Retrofit的使用,其实还是很简单的,而且逻辑思路也比较清晰,所以开发者是很容易上手的。添加依赖build.gradle文件的dependencies下添加以下依赖:复制代码代码如下:compile'com.squareup.retrofit2:retrofit:2.3.0'compile'com.squareup.retrofit2:converter-gson:2.3.0'上面除了添加Retrofit依赖,还添加了gson依赖,来解析请求得到的json数据。定义使用的数据集合class
Result
<T>{
var
status:
Int?
=
-1//请求结果
lateinit
var
message:
String;
var
content
:T?=
null
}这是返回结果的集合,使用了kotlin来写class
Content
{
var
name:
String?=
null
var
mobile
:String?=
null
var
address
:String?=
null
}需要的内容集合类请求需要一个接口,并且编写请求的方法interface
HttpService
{
@GET("index.php?m=Api&c=User&a=userInfo")
fun
getUserInfo():
Call<Result<Content>>
}调用请求private
void
request()
{
Retrofit
retrofit
=
new
Retrofit.Builder()
.baseUrl("//")
.addConverterFactory(GsonConverterFactory.create())
.build();
HttpService
service
=
retrofit.create(HttpService.class);
Call<Result<Content>>
call
=
service.getUserInfo();
call.enqueue(new
Callback<Result<Content>>()
{
@Override
public
void
onResponse(Call<Result<Content>>
call,
Response<Result<Content>>
response)
{
Log.i("tag",
response.body().getContent().getName());
}
@Override
public
void
onFailure(Call<Result<Content>>
call,
Throwable
t)
{
Log.i("tag",
"失败");
}
});
}以上就是Retrofit的get请求方式。GET请求需要在请求方法之前添加一个GET注解来标明这是一个GET请求,同样,如果是POST请求需要一个POST注解。@POSTPOST请求,需要添加一个@POST的注解,并且需要还需要使用@FormUrlEncoded注解来表明,这是一个表单,使用@Field注解,传入表单需要的参数。@FormUrlEncoded
//表单
@POST("index.php?m=Api&c=User&a=userInfo")
fun
getUserInfo(
@Field("user_id")
user_id:
String
//参数
):
Observable<BaseResult<User>>
//返回数据类型@Body@Body注解是针对POST的请求方式,如传输数据JSON格式class
Content
{
var
name:
String?=
null
lateinit
var
sn:SN
class
SN{
var
out
:String
?=
null
var
errNo
:Int
?=
-1
}
}@GET("ajax.php")
fun
getInfo(@Body
content:
Content):
Call<Result<Content>>@Path使用@Path可以动态的配置URL地址。@GET("{path/}{index.php?m=Api&c=User&a=userInfo")
fun
getUserInfo(@Path("path")path:
String):
Call<Result<Content>>@Query@Query即动态指定查询条件@GET("ajax.php")
fun
getInfo(@Query("id")id:
String):
Call<Result<Content>>@Query是查询单一的条件,但是如果是多个条件的话,就不适用了,那么就需要用到@QueryMap注解。@QueryMap就是动态指定查询条件组。文件上传使用@Part注解来表示单个文件上传,而@PartMap注解跟单文件上传是类似的,是不过是使用了Map集合来封装了上传的文件,即多文件上传。除了以上的注解,还有@Header,即表示加入消息报头,因为在http请求的时候,为了防止攻击、过滤不安全的访问和添加特殊加密的访问来
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 硫化硒催化剂在有机反应中的应用
- 5G移动通信的关键技术及应用发展
- 5052铝合金阳极氧化黄蓝色差相关性研究
- 480°混凝土旋转楼梯施工技术
- 3GPP 5G NR物理层关键技术综述
- 3D创客教育与高中信息技术教学融合探索
- 2种模型对堆石坝变形分析的对比研究
- 20t以下带吊车门式刚架钢结构厂房设计实例分析
- 2020年中国俄罗斯东欧中亚学会俄语教学研究会会员单位计划开展的主要活动
- 2018年中国水电发展趋势探讨
- 细菌的耐药性及药敏试验的临床意义课件
- 医疗整形机构自查报告
- 入团团课中国共青团课件
- 平均数教学设计 省赛一等奖 公开课教学设计
- 2023年济南高新区管委会所属事业单位招考人员笔试参考题库(共500题)答案详解版
- 上海清算所试题(含答案)
- 城市轨道交通票务清分-清分票款
- 2023-2024学年福建省福州市晋安区七年级(上)期中数学试卷(含解析)
- 广东检测鉴定协会非金属考试试题
- 融优学堂20世纪西方音乐(北京大学)章节测验答案
- 乡村振兴(生态环保)专项债申报流程
评论
0/150
提交评论