下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】怎么使用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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省泰州市靖江市实验校2023-2024学年中考适应性考试化学试题含解析
- 中班幼儿抢玩具分析报告总结
- 中医护理技术操作规程
- 会计宏观经济环境分析
- 交通管理调研报告总结
- 人文素质提高项目实施计划书
- 仓管员能力提升计划方案
- 促销活动流程管理方案设计
- 企业管理知识总结
- 传媒技术发展趋势分析报告
- 汽车中级工实操考试项目及评分
- 协会会员申请表(最新版)
- 中考优秀作文范文文档20篇
- 超星尔雅学习通《声光影的内心感动电影视听语言(四川大学)》章节测试答案
- 小学五年级体育室内课教案(4篇)
- 教育教学设计:介绍一种事物评课
- 国家卫生部《综合医院分级管理标准(试行草案)》
- 大剧院施工组织设计方案(664页)
- 中药饮片采购制度、工作规范及流程
- 工商管理学院通用PPT课件
- 高考语文作文素材人物速递——苏炳添课件18张
评论
0/150
提交评论