安卓android网络框架之Retrofit个人使用心得

废话不多说,我们直接进入正题。

使用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);
这样我们每次发送的请求体或者响应体里面得到的响应就为我们转换器所定义的实体类了。

大概就是这样子了,如有不正确的地方,请大家多多指出,谢谢!!!







  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值