RxJava + OKhttp + Retrofit心得总结第一篇


目的:复习,总结使用技巧.



Retrofit:


注意:

绝对不要在服务器接口地址上带""/" ,如"/list"这种是禁止的,只可以"list"


/**

 *
 * retrofit2 @Path 多用于 路径式,如第一个接口为: data/福利/3/2  (number = 3 , page = 2)
 * retrofit2 @Query key-value式,如 key = aaa value = "aaa" 那么 GET下,请求为/login/loginSuccess/?aaa="aaa"
 * retrofit2 @Query 动态参数 如果某些参数不是必须的,那么将这些参数类型设置为引用类型,并传入null,在构建时不会发送这些参数
 */
public interface Api {

    @GET("data/福利/{number}/{page}")
    Observable<GankBeautyResult> getBeauties(@Path("number") int number, @Path("page") int page);

    @GET("login/loginSuccess")
    Observable<LoginVo> login(@Query("account") String account
            , @Query("pwd") String pwd, @Query("vcode") String vcode
            , @Query("imageId") String imageId, @Query("deviceToken") String deviceToken);

    @GET("appCms/startPage")
    Observable<StartPage> getStartPage();
}

在实际项目中,通常每个请求都要携带一些公用参数,或者请求头,这里提供一种思路,使用OKHttpClient的Interceptor来实现该需求;

if (api == null) {
            okHttpClient = new OkHttpClient.Builder()
                    .addInterceptor(new CommonParamsInterceptor())
                    .build();

            Retrofit retrofit = new Retrofit.Builder()
                    .client(okHttpClient)
                    .baseUrl("http://www/")
                    .addConverterFactory(gsonConverterFactory)
                    .addCallAdapterFactory(rxJavaCallAdapterFactory)
                    .build();
            api = retrofit.create(Api.class);
        }
        return zhuangbiApi;

关于addConvertFactory的要点:

// 注意: 如果添加多了ConvertFactory,那么Retrofit会按照add的顺序依次解析,若成功,不再执行下一个,若失败,则执行下一个
            Retrofit retrofit = new Retrofit.Builder().client(okHttpClient)
                    .baseUrl("http://com/")
                    .addConverterFactory(myCustomConverterFactory)
                    .addConverterFactory(gsonConverterFactory)

这样的话,一般gsonConverttFactory不会执行.




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值