安卓android网络框架之Retrofit个人使用心得
2017-03-30 20:55
555 查看
废话不多说,我们直接进入正题。
使用retrofit首先得依赖一波。
compile 'com.squareup.retrofit2:retrofit:2.2.0'
1.retrofit是将HTTP API转换成JAVA接口来试用:
3.创建请求体
1)表单形式请求体
2)键值对形式请求体
4.接口对象创建出Call可做同步或异步HTTP请求
这里牵涉到了Json解析,如果想要简单一些,那么我们可以依赖Gson来解析或生成json对象或json字符串
使用方法,依赖
当我们每次构建请求时都需要用Gson来生成或者解析Json数据,感觉很麻烦,所以此时,我们就可以使用另一种武器了,也就是转换器。
默认情况下,Retrofit只能将HTTP消息头反序列化成OkHttp的ResponseBody类型,它的@Body注解也只接受RequestBody类型。
下面是使用GsonCnverterFactory的例子,来生成前文中提到的MyApi接口,它使用Gson库来做转换:
大概就是这样子了,如有不正确的地方,请大家多多指出,谢谢!!!
使用retrofit首先得依赖一波。
compile 'com.squareup.retrofit2:retrofit:2.2.0'
1.retrofit是将HTTP API转换成JAVA接口来试用:
public interface MyApi { @GET("\\伪路径") Call<ResponseBody> myFun(@Body response body); }2.创建核心类Retrofit并生成上述接口的实现
Retrofit retrofit = new Retrofit.Builder() .baseUrl("\\路径") .build(); MyApi myApi =retrofit.create(MyApi.class);
3.创建请求体
1)表单形式请求体
ResquestBody body = new FromBody.builder() .add("name","123456") .add("password","123456") .build();
2)键值对形式请求体
ResquestBody body = RequestBody.creat(null,"{\n"+"\"username\":\"aaa",\n"+"\"password\":\"123456\"\n"+"}");
4.接口对象创建出Call可做同步或异步HTTP请求
Call<ResponseBody> call =myApi.Myfun(responsebody);1)同步执行
call.execute();2)异步执行
call.enqueue(new Callback<ResponseBody>() { // 请求成功 @Override public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { // 可以更新UI的 } // 请求失败 @Override public void onFailure(Call<ResponseBody> call, Throwable t) { // 可以更新UI的 } });这个流程就是使用retrofit最简单的用法了。
这里牵涉到了Json解析,如果想要简单一些,那么我们可以依赖Gson来解析或生成json对象或json字符串
使用方法,依赖
compile 'com.google.code.gson:gson:2.8.0'
toJson方法:将实体对象转换成json字符串 String str = new Gson().toJson(user);
fromJson方法:将字符串解析生成实体类对象 User user = new Gson().fromJson(json,User.class);
当我们每次构建请求时都需要用Gson来生成或者解析Json数据,感觉很麻烦,所以此时,我们就可以使用另一种武器了,也就是转换器。
默认情况下,Retrofit只能将HTTP消息头反序列化成OkHttp的ResponseBody类型,它的@Body注解也只接受RequestBody类型。
下面是使用GsonCnverterFactory的例子,来生成前文中提到的MyApi接口,它使用Gson库来做转换:
Retrofit retrofit = new Retrofit.Builder() .baseUrl("//路径") .addConverterFactory(GsonConverterFactory.create()) .build(); MyApi myApi = retrofit.create(MyApi.class);这样我们每次发送的请求体或者响应体里面得到的响应就为我们转换器所定义的实体类了。
大概就是这样子了,如有不正确的地方,请大家多多指出,谢谢!!!
相关文章推荐
- Android(安卓)网络框架之Retrofit网络框架加载数据使用方法
- [置顶] Android 网络框架之Retrofit2使用详解及从源码中解析原理
- android快捷开发之Retrofit网络加载框架的简单使用
- Android 网络框架之Retrofit2使用详解及从源码中解析原理
- Android中retrofit网络请求框架使用
- Retrofit 2.0使用详解,配合OkHttp、Gson,Android最强网络请求框架
- Retrofit网络请求框架使用简析——Android网络请求框架(四)
- Android 网络框架 Retrofit2.0介绍、使用和封装
- Android开源网络请求框架Retrofit的介绍使用
- Android 网络请求框架Retrofit2.0使用笔记
- Android Retrofit框架的使用和个人见解
- android网络框架Retrofit——简介,使用的jar包
- Android网络请求框架Retrofit使用详解
- Android中网络框架Retrofit2.0简单使用
- Android网络框架 - Retrofit基本使用
- android快捷开发之Retrofit网络加载框架的简单使用
- 在android中使用Retrofit网络框架
- Retrofit网络请求框架使用简析——Android网络请求框架(四)
- Android 网络框架之Retrofit2使用详解及从源码中解析原理