Retrofit的简单认识

Retrofit是Square公司推出的一个第三方框架,主要是针对其以前推出的网络请求库OkHttp的一个封装,这样我们只需要进行简单的配置Retorfit就可以进行网络请求了

在开发工具Android Student上使用Retrofit

导入的依赖:
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4' //Retrofit2所需要的包
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4' //ConverterFactory的Gson依赖包
compile 'com.squareup.retrofit2:converter-scalars:2.0.0-beta4' //ConverterFactory的String依赖包

在demo中所用的网络请求地址
请求地址:http://web.juhe.cn:8080/finance/stock/hs
请求参数:gid=sh601009&type=0&key=d28febfa1e2d21f37fd505f52e967b65
请求方式:GET

然后需要创建一个接口,通过注解与封装在Retrofit库内部的Okhhtp连接,进行网络请求

在方法上面有多种注解方式,现在只学到了两种
@GET: 通过get方式进行网络请求
@POST: 通过post方式进行网络请求
后面跟着的括号内的String就是整个网络请求的完整路径

Call<name>,其中的name就是进行网络请求后你需要返回的值的类型
更改为实体类,可以内部自动经过Gson解析,生成对应的实体类
更改为String,即返回请求的完整的json数据

然后在方法的参数中
@Query: 注解的功能相当于一个站位符
就是把 括号的String当做键值名,在之后的参数当做键值,形成一个键值对,当做参数拼接到上面的路径中,最后形成了完整的路径
例:
@GET( "{name}" )
Call<User> getUser (@Path( "username" ) String namevalue) ;
其这样直观的网络路径就是 name?username=namevalue

这样接口就写完了,现在可以去需要进行网络请求的地方调用Retrofit

首先生成一个Retrofit对象
Retrofit retrofit=new Retrofit.Builder()
.baseUrl("http://web,juhe,cn:8080/");
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build();

.baseUrl:括号中的参数加上之前@GET("name")中的name参数,形成最终的网络请求地址
.addConverterFactory:增加返回值为String的支持
.addConverterFactory: 增加返回值为实体类(已经经过了Gson的解析)的支持

生成刚才创建的接口对象
RequestService requestService = builder.create(RequestService. class );

调用接口中的方法,并添加参数
Call<Model> call1 = requestService.getModel( "sh601009" , "0" , "d28febfa1e2d21f37fd505f52e967b65" );

生成一个其内部的Call类对象,然后调用enqueue方法,异步获取网络数据

在先前已经定义好了一个Model类,对应网络的json数据,Retrofit库中也对Gson进行了封装,所以直接得到解析完成的数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值