Retrofit 使用技巧

原创 2018年04月17日 21:13:18

Retrofit 使用技巧

  1. 创建工厂类

、、、

public class RetrofitFactory {
    private static String baseUrl = "BaseURL/";

    private static Retrofit GsonRetrofit = new Retrofit.Builder()
            .baseUrl(baseUrl)

            //TOdo 添加转换器配置
            .addConverterFactory(GsonConverterFactory.create(GsonFactory.getgson()))
            .build();


    //解析返回的字符串
    public static LogInService getStringService() {
        LogInService service = GsonRetrofit.create(LogInService.class);
        return service;
    }


}

、、、
2. 通过泛型和注解方式配置参数
、、、

public interface LogInService {
    @GET("/auth/login")
    Call<LogInRequestBean> login(@Query("mail") String mail,
                                 @Query("secret") String secret,
                                 @Query("device") String device);

    @GET("/auth/check")
    Call<CheckBean> check(@Query("mail") String mail);

    @GET("/auth/register")
    Call<LogInRequestBean> register(@Query("mail") String mail,
                                    @Query("secret") String secret,
                                    @Query("code") String code,
                                    @Query("device") String device);

    @GET("/auth/refresh")
    Call<LogInRequestBean> refresh(@Query("mail") String mail,
                                   @Query("refresh_token") String refresh_token,
                                   @Query("device") String device);

}

、、、
3. 生成转换后的bean 使用gsonformat(必要值可定义枚举)
4.创建requestManager统一处理网络请求
、、、
public class RequestManager {

/**
 * 重置密码
 *
 * @param email
 * @param password
 * @param deviceID
 */
public static void register(String email, String password, String code, String deviceID) {
    Call<LogInRequestBean> call = RetrofitFactory.getStringService().register(email, password, code, deviceID);
    if (call != null) {
        call.enqueue(new Callback<LogInRequestBean>() {
            @Override
            public void onResponse(Call<LogInRequestBean> call, Response<LogInRequestBean> response) {
                if (response.code() == 200) {
                    //TODO 记录当前用户类型
                    //todo 记录"accessToken": "string", "expiresIn": 0,"refreshToken": "string",
                    LogInRequestBean logInRequestBean = response.body();
                    //todo 登陆成功
                    EventBus.getDefault().post(new CTLoginEvent(CTEvent.TYPE_LOGIN, true, CTLoginEvent.REASON_NONE));

                }
                //todo 登陆失败
                else {
                    EventBus.getDefault().post(new CTLoginEvent(CTEvent.TYPE_LOGIN, false, CTLoginEvent.REASON_INVALID_PARAM));

                }


            }

            @Override
            public void onFailure(Call<LogInRequestBean> call, Throwable t) {
                //todo 网络失败
            }
        });
    }
}

}

、、、
5. 处理逻辑此处应特别注意,不应该在manager中拆开response,只需将response传递给请求方即可。
6. 和EventBus结合即可将对象在回传事件时传递给请求调起方

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cuizehui123/article/details/79980949

Linux常用命令及使用技巧

本课程需要懂点Linux系统,覆盖Linux系统50多个常用命令,深入讲解每个命令的用途、常用选项及使用技巧。 无基础同学能帮助你熟悉在Linux系统下的工作方式,有基础同学能帮助你提高Linux系统专业能力。
  • 2017年10月24日 15:49

retrofit封装

  • 2017年09月17日 16:36
  • 25.81MB
  • 下载

Android应用架构之Retrofit使用

Retrofit:Square提供的开源产品,为Android平台的应用提供一个类型安全的REST客户端         https://github.com/square/retrofit Rx...
  • liuhongwei123888
  • liuhongwei123888
  • 2015-12-21 23:42:28
  • 97452

这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解)

前言 在Andrroid开发中,网络请求十分常用 而在Android网络请求库中,Retrofit是当下最热的一个网络请求库 今天,我将献上一份非常详细Retrofit v2.0的使用教程,希望你...
  • carson_ho
  • carson_ho
  • 2017-06-26 08:35:38
  • 60540

Android:Retrofit 与 RxJava联合使用大合集(含实例教程)!

前言 在Andrroid开发中,网络请求十分常用,而在Android网络请求库中,Retrofit是当下最热的一个网络请求库 Retrofit之所以作为现在最流行的网络请求库,其中一个主...
  • carson_ho
  • carson_ho
  • 2018-01-22 08:26:57
  • 3195

Retrofit和RxJava结合使用

使用Retrofit的时候就不得不提到RxJava,RxJava是一个基于观察者模式的异步实现。关于RxJava的入门学习,强烈推荐《给Android开发者的RxJava详解》 https://g...
  • tinyzhao
  • tinyzhao
  • 2016-09-30 16:12:34
  • 1451

Retrofit用法详解

一、 简介Retrofit是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于OkHttp实现的,OkHttp现在已经得到Google官方认可,大量的app都采用O...
  • duanyy1990
  • duanyy1990
  • 2016-08-06 23:11:33
  • 61687

Retrofit 基本使用教程

Retrofit 查询参数查询参数是一种很常见的客户端往服务端传递数据的方式,比如我们需要传一个idg=给服务端,那么URL可能是这样的:https://api.example.com/tasks?i...
  • jiangxuqaz
  • jiangxuqaz
  • 2016-02-28 12:01:58
  • 9033

Retrofit的使用,及介绍,Retrofit中的各种方法的详细描述简单案例,三分钟学会Retrofit

Retrofit的使用,及介绍: 一,概念描述及理解: Retrofit的底层是封装的okhttp是对okhttp的封装其内置okhttp框架,说retrfit是网络请求的框架在这里是不准确的,其实在...
  • qq_35681180
  • qq_35681180
  • 2016-11-11 19:22:32
  • 2393

Retrofit2.0使用

首先是我参考的文章: ● Retrofit 2.0:有史以来最大的改进 ● 使用Retrofit请求API数据 ● Retrofit2.0使用详解 ● Retrofit 2.0使用详解,配合OkHt...
  • qq_17766199
  • qq_17766199
  • 2015-11-20 13:44:33
  • 6336
收藏助手
不良信息举报
您举报文章:Retrofit 使用技巧
举报原因:
原因补充:

(最多只允许输入30个字)