网络加载框架Retrofit2

传送门安卓的更新换代,各种新框架,各种新的控件,当我安卓5.0的新特性还没熟悉的时候什么安卓6.0就出来了。就像网络框架,不说我们经常是原生态的http请求,还有前两年Volley框架,到如今的okhttp,retrofit。感觉现在谁网络请求不用个okhttp就有一种跟不上时代潮流。

retrofit是什么

retrofit框架的底层是基于okhttp,但是呢,它对http进行的封装、

如何使用retrofit

毫无疑问,在我们的android studio进行引入
与okhttp不同的是,retrofit需要定义一个接口

public interface RequestSerives {
    @POST("{name}")
    Call<String> getString(@Query("loginname") String loginname,
                          @Query("nloginpwd") String nloginpwd);
}

然后创建一个retrofit对象


Retrofit retrofit = new Retrofit.Builder()
               .baseUrl("http://106.3.227.33/pulamsi/")
               //增加返回值为String的支持
               .addConverterFactory(ScalarsConverterFactory.create())
               //增加返回值为Gson的支持(以实体类返回)
               .addConverterFactory(GsonConverterFactory.create())
               //增加返回值为Oservable<T>的支持
               .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
               .build();

随后根据retrofit对象创建RequestSerivice对象,以及Call

RequestSerives requestSerives = retrofit.create(RequestSerives.class);//这里采用的是Java的动态代理模式
Call<String> call = requestSerives.getString("userName", "1234");//传入我们请求的键值对的值

然后我们开始介绍,刚开始我们定义的接口的含义,其中post后面的name相当于一个占位符,会被baseUrl(“http://106.3.227.33/pulamsi/“),这里面的字符串所替代,至于post的意思当然是指为post请求。
@query是指的键值对,也就是下面方法进行调用的:

retrofit.create(RequestSerives.class);//这里采用的是Java的动态代理模式
Call<String> call = requestSerives.getString("userName", "1234");//传

这之后我们就可以进行数据的获取,例如


 call.enqueue(new Callback<String>() {
    @Override
    public void onResponse(Call<String> call, Response<String> response) {
        Log.e("成功",response.body().toString());
    }

    @Override
    public void onFailure(Call<String> call, Throwable t) {
        Log.e("失败","失败");
    }
});

还有一点需要注意的是,默认的情况下,retrofit用的是gson解析,我们的返回值可以是gson解析过的对象。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值