Retrofit的简单认识
2017-02-22 16:29
141 查看
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进行了封装,所以直接得到解析完成的数据
在开发工具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进行了封装,所以直接得到解析完成的数据
相关文章推荐
- 对项目经理的简单认识
- 关于 OO 及虚拟机的简单认识
- 简单认识一下S60系统
- 教学思路C#之入门一 认识简单的C#结构
- 认识Selenium---简单介绍
- 教学思路C#之入门一 认识简单的C#结构
- 设计引领未来——兼谈对于XP简单设计的认识
- 简单认识Smarty3
- 过渡到SSAS之一:简单模型认识
- 对软件行业的简单认识
- 串行通讯简单认识 单工、半双工和全双工的定义
- (一)一个简单的认识
- 简单认识下注册表的HIVE文件格式
- 简单认识Anti-RootKit
- 对 API 发展的简单认识
- 用Javascript 验证表单提交&css简单认识
- 初识spring,通过简单实例快速认识spring
- XHTML教程,简单认识XHTML基础知识
- 串行通讯简单认识 单工、半双工和全双工的定义
- 认识Selenium---简单介绍