Retrofit2 的简单使用

里面的原理啥的就不讲了,网上一堆文章,这里只是将一下简单的使用,笔记记录一下:

1、老规矩 GitHub 导入:
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.retrofit2:adapter-rxjava:2.9.0'

2、对其进行简单的封装,使用单例模式
public class BaseRequest {
    private static BaseRequest mInstance;
    private static Retrofit retrofit;
    public  ApiService request = null;

    public static BaseRequest getInstance() {
        if (mInstance == null) {
            synchronized (BaseRequest.class) {
                if (mInstance == null) {
                    mInstance = new BaseRequest();
                }
            }
        }
        return mInstance;
    }

    public void initRequest() {
         retrofit = new Retrofit.Builder().baseUrl(baseUrl)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
         request = retrofit.create(ApiService.class);

    }


在Application 里调用 initRequest 方法,进行初始化


3.写请求接口

public interface ApiService {
    @GET("/login")
    Call<Map<String,Object>> login(@Query("phoneNumber") String name, @Query("password") String password);
}
注:此处注解 有具体规则,请参照注解的讲解文章,这里只是一个简单的demo

4. 调用

BaseRequest.getInstance().request.login("啊啊啊", "aaaa")
        .enqueue(new Callback<Map<String, Object>>() {
            @Override
            public void onResponse(Call<Map<String, Object>> call, Response<Map<String, Object>> response) {
                //如果请求成功 通过 response.body() 获取返回的json 字符串
                Map<String,Object> map = response.body();

                //如果返回失败(此处失败指 后台接口返回非 200 状态) 通过 response.errorBody().string() 获得返回的字符串

                try {
                    Log.d("aaaa", "response=" + response.errorBody().string());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

            @Override
            public void onFailure(Call<Map<String, Object>> call, Throwable t) {

            }
        });

若有不对欢迎指正,感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值