android Retrofit+OKhttp实现接口调用

本文介绍了如何在Android项目中利用Retrofit和OKhttp进行接口调用,包括数据返回Model类的设计、返回码的约定、Client Base类的创建以及具体实现步骤。此外,还提供了项目的资源下载链接。
摘要由CSDN通过智能技术生成

前言

最近几个项目都是使用的Retofit+OKHttp的来实现接口调用的,再之前的框架中本次加入了from表单的提交方式。为了方便自己以及大家整合了下,方便以后的工作开展


一.数据返回Model类

package com.reach.doooly.http.base;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import com.reach.doooly.bean.RHBaseVo;
import retrofit2.http.Multipart;
import retrofit2.http.POST;

/**
 * @author fqming
 *         <p>
 *         公用的返回信息bean
 */

public class CommResultBeanVo extends RHBaseVo {
   
    //错误码
    private String code;
    //信息
    //下面的注释只有在gson中使用才有效
//    @Expose
//    @SerializedName("msg")
    private String msg;
    //返回信息

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    private String data;

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }


    public String getData() {
        return data;
    }

    public void setData(String data) {
        this.data = data;
    }

    /**純屬為了不該其他的方法而添加的方法*/
    public String getMessage(){
        return msg;
    }

    @Override
    public String toString() {
        return "CommResultBeanVo{" +
                "code='" + code + '\'' +
                ",' message='" + msg + '\'' +
                ", data='" + data + "'\'}";
    }
}

该类实为了方便数据解析,尤其是小编很不喜欢写json数据解析,喜欢用GSON,也是谷歌推荐的。


二.返回码

与后台服务端一起约定返回码,然后有下面的类
下面是小编与后端约定的返回码

package com.reach.doooly.http.client;

/**
 * Created by tang on 2017/8/3 0003.
 */
public class ClientCode {
   
    //成功
    public static final int SUCCESS_CODE=1000;
    //token失效
    public static final int OUTTOKEN_CODE=40001;
}

三.Client Base类

package com.reach.doooly.http.client;

import io.reactivex.Observable;
import io.reactivex.ObservableSource;
import io.reactivex.ObservableTransformer;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Function;
import io.reactivex.schedulers.Schedulers;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import okhttp3.ConnectionPool;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
import retrofit2.converter.fastjson.FastJsonConverterFactory;
import android.annotation.SuppressLint;
import android.content.Context;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.reach.doooly.http.base.BaseApiService;
import com.reach.doooly.http.base.CommResultBeanVo;
import com.reach.doooly.http.converfactory.StringConverterFactory;
import com.reach.doooly.http.cookie.CookieCacheImpl;
import com.reach.doooly.http.cookie.CookieManager;
import com.reach.doooly.http.cookie.SharedPrefsCookiePersistor;
import com.reach.doooly.http.errorhandler.NetException;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值