Android网络请求库RetrofitUtils

Posted chenyangqi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android网络请求库RetrofitUtils相关的知识,希望对你有一定的参考价值。

RetrofitUtils

GitHub地址,帮忙给个Star

项目介绍

Retrofit+Okhttp辅助类的简单封装,vesion 1.0.X 实现了Get,Post-Form、Post-Json
三种形式的网络请求,后续版本会实现文件上传下载and各类raw的请求方式。

功能

  1. Get
  2. Post表单
  3. PostJson

后续版本待实现功能

  1. 文件上传下载(开发中...)
  2. 拦截器
  3. RxJava+Retrofit+Okhttp
  4. 考虑去掉loading(丑且无用),是否把所用到的第三方库打包进库中

使用说明

1. 引用
    implementation ‘cn.cyq.net:retrofitutils:1.0.3‘
    <!--library中引用了下面五个库,我没有打包进去了,避免版本冲突,比如七牛云的okio okhttp冲突-->
    //网络请求依赖
    implementation ‘com.squareup.okio:okio:1.14.0‘
    implementation ‘com.squareup.okhttp3:okhttp:3.10.0‘
    implementation ‘com.squareup.retrofit2:retrofit:2.4.0‘
    implementation ‘com.squareup.retrofit2:converter-scalars:2.3.0‘
    //Loader依赖
    implementation ‘com.wang.avi:library:2.1.3‘
2. 初始化

在Application的onCreate()初始化

 public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        RestClient.init(getApplicationContext(), "baseUrl address");
    }
}
3. 具体请求
Get
 RestClient.buider()
                .loader(this)//可以不添加
                .url(url)
                .success(new ISuccess() {
                    @Override
                    public void onSuccess(String response) {
                        Log.i("test", "GET请求:" + response);
                    }
                })
                .failure(new IFailure() {
                    @Override
                    public void onFailure() {
                        Log.i("test", "失败");
                    }
                })
                .error(new IError() {
                    @Override
                    public void onError(int code, String msg) {
                        Log.i("test", "错误");
                    }
                })
                .build()
                .get();
Post表单
RestClient.buider()
                .loader(this)
                .url(url)
                .params("key1", "value1")
                .params("key2", "value2")
                .success(new ISuccess() {
                    @Override
                    public void onSuccess(String response) {
                        Log.i("test", "POST请求:" + response);
                    }
                })
                .failure(new IFailure() {
                    @Override
                    public void onFailure() {
                        Log.i("test", "失败");
                    }
                })
                .error(new IError() {
                    @Override
                    public void onError(int code, String msg) {
                        Log.i("test", "错误");
                    }
                })
                .build()
                .post();
Post Json
        String jsonStr = "{"username":"张三","age":16}";
        RestClient.buider().loader(this)
                .url("http://192.168.0.1:8080/service/jsontest.html")
                .raw(jsonStr)
                .success(new ISuccess() {
                    @Override
                    public void onSuccess(String response) {
                        Toast.makeText(MainActivity.this, response, Toast.LENGTH_LONG).show();
                        Log.i("test", "Post Row请求:" + response);
                    }
                })
                .error(new IError() {
                    @Override
                    public void onError(int code, String msg) {
                        Log.i("test", "Post Ro请求失败");
                    }
                })
                .build()
                .post();

说明

  1. vesion 1.0.X 是初期版本,不建议在正式项目使用,后续会完善...

引用的库及版本

ps:2018-07-26[最新]
  1. com.squareup.retrofit2:retrofit:2.4.0
  2. com.squareup.okhttp3:okhttp:3.10.0
  3. com.wang.avi:library:2.1.3
  4. com.squareup.retrofit2:converter-scalars:2.3.0
  5. com.squareup.okio:okio:1.14.0

以上是关于Android网络请求库RetrofitUtils的主要内容,如果未能解决你的问题,请参考以下文章

android 网络请求库的比较

android网络请求库volley方法详解

Android 网络请求库volley的封装,让请求更方便

有哪些 Android 的开源界面库

Android 网络请求库Retrofit使用详解

Android网络篇(四)—— 自己动手封装一个属于自己的网络请求框架