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的更多相关文章

  1. 浅论Android网络请求库——android-async-http

    在iOS开发中有大名鼎鼎的ASIHttpRequest库,用来处理网络请求操作,今天要介绍的是一个在Android上同样强大的网络请求库android-async-http,目前非常火的应用Insta ...

  2. Android进阶笔记02:Android 网络请求库的比较及实战(二)

    一.Volley        既然在android2.2之后不建议使用HttpClient,那么有没有一个库是android2.2及以下版本使用HttpClient,而android2.3及以上版本 ...

  3. Android进阶笔记01:Android 网络请求库的比较及实战(一)

    在实际开发中,有的时候需要频繁的网络请求,而网络请求的方式很多,最常见的也就那么几个.本篇文章对常见的网络请求库进行一个总结. 一.使用HttpUrlConnection: 1. HttpUrlCon ...

  4. android 网络请求库的比较

    源码请戳 一. 现有库和选择的库 HttpURLConnection:是Java中的标准类,是对Java中socket的封装. Httpclient:是Apache的开源框架,是对HttpURLCon ...

  5. android网络请求库volley方法详解

    使用volley进行网络请求:需先将volley包导入androidstudio中 File下的Project Structrue,点加号导包 volley网络请求步骤: 1. 创建请求队列     ...

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

    首先封装一下volley 请求 public class CustomRequest extends StringRequest { private static final String TAG = ...

  7. [转]Android各大网络请求库的比较及实战

    自己学习android也有一段时间了,在实际开发中,频繁的接触网络请求,而网络请求的方式很多,最常见的那么几个也就那么几个.本篇文章对常见的网络请求库进行一个总结. HttpUrlConnection ...

  8. Android之网络请求库

    自己学习android也有一段时间了,在实际开发中,频繁的接触网络请求,而网络请求的方式很多,最常见的那么几个也就那么几个.本篇文章对常见的网络请求库进行一个总结. HttpUrlConnection ...

  9. Android 各大网络请求库的比较及实战

    自己学习android也有一段时间了,在实际开发中,频繁的接触网络请求,而网络请求的方式很多,最常见的那么几个也就那么几个.本篇文章对常见的网络请求库进行一个总结. HttpUrlConnection ...

随机推荐

  1. 【xsy1122】 路径 点分治+trie

    题目大意:给你一棵n个点的树,树边上有边权,对于每一个点,你要求出经过该点的所有的路径中,路径异或和最大的值. 数据范围:$n≤10^5$,边权$≤10^9$. 我们考虑枚举每一条路径,显然这个是会T ...

  2. 【BZOJ3625】【codeforces438E】小朋友和二叉树 生成函数+多项式求逆+多项式开根

    首先,我们构造一个函数$G(x)$,若存在$k∈C$,则$[x^k]G(x)=1$. 不妨设$F(x)$为最终答案的生成函数,则$[x^n]F(x)$即为权值为$n$的神犇二叉树个数. 不难推导出,$ ...

  3. 【BZOJ3456】轩辕朗的城市规划 EGF+多项式求ln

    我们构造$f(i)$和$g(i)$. 其中$f(x)$表示由$x$个节点构成的无向简单连通图的个数. $g(x)$表示有$x$个节点构成的无向简单图(不要求连通)的个数. 显然,由$x$个节点构成的无 ...

  4. 【BZOJ4916】神犇和蒟蒻 杜教筛

    题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4916 第一个询问即求出$\sum_{i=1}^{n} { \mu (i^2)} $,考虑 ...

  5. POJ 2350

    #include<iostream> #include<stdio.h> #include<iomanip> using namespace std; int ma ...

  6. AsyncTask的前世今生

    先看下Java Threading Framework的类图:        Callable与Runnable类似,差别在Callable具有返回值,共同点是两个都是执行体,一般都抽象为任务处理. ...

  7. ElasticSearch Aggs的一些使用方法

    这段代码是关于多层聚合和嵌套域的聚合,来源:https://github.com/elasticsearch/elasticsearch/blob/master/src/test/java/org/e ...

  8. sql_auoload_regiester() 解释(转载)

    在了解这个函数之前先来看另一个函数:__autoload. 一.__autoload 这是一个自动加载函数,在PHP5中,当我们实例化一个未定义的类时,就会触发此函数.看下面例子: 运行index.P ...

  9. 代码阅读——十个C开源项目

    1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连 ...

  10. unity 图片变纯色填充

    unity自带shader 即可