【移动应用开发技术】怎么使用Android Retrofit_第1页
【移动应用开发技术】怎么使用Android Retrofit_第2页
【移动应用开发技术】怎么使用Android Retrofit_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】怎么使用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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论