对OkHttp3请求库简单封装
来源:互联网 发布:pop软件中文版下载 编辑:程序博客网 时间:2024/06/07 22:53
ZyNetHttps
对OkHttp3请求库简单封装适配Json-Rpc调用协议
———主要对Json-Rpc结构封装,同时保留post,get请求,加入文件图片download。回调形式Gson,Json,String等。
技术简介
json-rpc是基于json的跨语言远程调用协议,比xml-rpc、webservice等基于文本的协议传输数据格小;相对hessian、java-rpc等二进制协议便于调试、实现、扩展,是非常优秀的一种远程调用协议。目前主流语言都已有json-rpc的实现框架,java语言中较好的json-rpc实现框架有jsonrpc4j、jpoxy、json-rpc。三者之中jsonrpc4j既可独立使用,又可与spring无缝集合,比较适合于基于spring的项目开发。
JSON-RPC协议描述
json-rpc协议非常简单,发起远程调用时向服务端传输数据格式如下:
{ "method": "main", "params": ["JSON-RPC"], "id": 1}
json-rpc返回数据
{ "result":"Hello JSON-RPC","error": null,"id":1}
1.json-rpc请求
private void postRpc() { Map<String, Object> params = new HashMap<>(); params.put("userid", 10); ZyNetHttps.getInstances() .newBuilder("http://zhanyun/shop?", "Main")//设置请求路径和请求方法名 .tag(this)//当前请求标识 .params(params)//请求参数 .isInputDecryption(false)//输入加密 .isOutputDecryption(false)//输出加密 .ctime(30)//连接时间 .wtime(10)//写入时间 .rtime(10)//读取时间 .callBack(new GsonResponseHandler<ModelMain>() {//请求回调 @Override public void onFinish(int statusCode) { LogHelper.e(statusCode + ""); } @Override public void onFailure(int statusCode, String error_msg) { LogHelper.e(error_msg); } @Override public void onSuccess(int statusCode, ModelMain response) { } }) .RPC();//请求类型 }
2.post请求
private void post() { Map<String, Object> params = new HashMap<>(); params.put("userid", 10); ZyNetHttps.getInstances() .newBuilder("http://zhanyun/shop?") .tag(this) .params(params) .callBack(new GsonResponseHandler<ModelMain>() { @Override public void onFinish(int statusCode) { LogHelper.e(statusCode + ""); } @Override public void onFailure(int statusCode, String error_msg) { LogHelper.e(error_msg); } @Override public void onSuccess(int statusCode, ModelMain response) { } }) .POST(); }
3.get请求
private void get() { Map<String, Object> params = new HashMap<>(); params.put("userid", 10); ZyNetHttps.getInstances() .newBuilder("http://zhanyun/shop?") .tag(this) .params(params) .callBack(new StrResponseHandler() { @Override public void onSuccess(int statusCode, String response) { } @Override public void onFinish(int statusCode) { } @Override public void onFailure(int statusCode, String error_msg) { } }) .GET(); }
4.文件下载
private void download() { ZyNetHttps.getInstances() .newBuilder("http://zhanyun/shop?") .filedir("/android/") .filedname("android.png") .callBack(new DownloadResponseHandler() { @Override public void onFinish(int statusCode) { } @Override public void onFailure(int statusCode, String error_msg) { } @Override public void onProgress(long currentBytes, long totalBytes) { } }) .DOWNLOAD(); }
5.取消当前网络请求
private void cancel(Context mContex) { ZyNetHttps.getInstances().cancel(mContex);}
github地址:https://github.com/GHdeng/ZyNetHttps
感觉封装得还是不够完善,欢迎大家吐槽Issues。
我们都是站在巨人的肩膀上:
参考
- https://github.com/hongyangAndroid/okhttputils
- https://github.com/tsy12321/BaseAndroidProject
0 0
- 对OkHttp3请求库简单封装
- 对OKHttp3的简单封装
- Retrofit+okhttp3的简单封装实现网络请求和拦截
- okhttp3简单封装GET和POST请求工具类
- OkHttp3的简单封装
- Okhttp3 简单单例封装
- Android一点 okhttp3 简单请求
- 基于OkHttp3封装网络请求框架
- ASIHTTPRequest 对GET POST 请求简单封装
- okhttp3 使用详解及简单封装
- 对Volley简单的封装,让网络请求更简单
- 使用okhttp3简单执行网络请求
- okhttp3(网络请求库)
- OkHttp3封装
- okhttp3封装
- OkHttp3封装
- 封装OkHttp3
- android网络请求组件(一)OkHttp3的封装使用
- 获取设备的uuid 将uuid中的“-”去掉
- android 事件的分发机制
- leetcode--8--实现atoi函数
- Medium 152题 Maximum Product Subarray
- XZ_iOS之从本地Json中读取数据
- 对OkHttp3请求库简单封装
- 深度学习2——深度学习(三十八)卷积神经网络入门学习(2.0)
- 服务容错性设计
- Keil 结构体变量初始化
- 收集一些自己觉得不错的开发资源
- 一起学docker(2)--基本概念
- android GridView两行水平滚动实现效果
- 如何区别开“鸡汤”和“能给人带来本质推动”的文章 ——底层社会生存指南
- Java 多线程分段下载原理分析和实现