retrofit 2学习

一、注意事项

1、请求接口不能继承自其他接口,不然报错

java.lang.IllegalArgumentException: API interfaces must not extend other interfaces.
如:

public interface PostYouDaoI extends PostBaseI{

    @POST("/translate?doctype=json&jsonversion=&type=&keyfrom=&model=&mid=&imei=&vendor=&screen" +
            "=&ssid=&network=&abtest=")
    @FormUrlEncoded
    Call<BeanYouDao> getTrans(@Field("i") String text);
}
接口PostYouDaoI继承自PostBaseI,将会报错。

2、url地址和参数由方法传入

public interface PostYouDaoI {

    @POST
    @FormUrlEncoded
    Call<BeanYouDao> getTransHttp(@Url String url, @FieldMap Map<String, String> map);
}

这里的url地址由方法传入,不像上例中,在注解中配置。

3、Retrofit与RxJava配合使用的时候,在创建Retrofit的时候,要加一句:

.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
不然报错:
java.lang.RuntimeException: Unable to start activity ComponentInfo{}: java.lang.IllegalArgumentException: Unable to create call adapter for io.reactivex.Observable<>
例如:

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl("")
        .addConverterFactory(GsonConverterFactory.create())
        .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
        .build();

二、结论

     优点:retrofit可与RxJava集成使用,直接使用较为方便。

     总结:retrofit已经对OkHttp做了高度封装,直接使用较为方便,如果是业务较为复杂的应用,需要再做封装,则retrofit不适合,retrofit每个请求都要对应一个请求接口和一个Bean数据容器,所以接口较多时,会产生大量的接口。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值