fastokhttp是基于okhttp-3.8.1.jar、okio-1.13.0.jar深度封装的OkHttp网络框架解读
2017-08-17 18:18
676 查看
fastokhttp
快速、便捷的okhttp,基于okhttp-3.8.1.jar、okio-1.13.0.jar深度封装的网络请求框架源码前往Github: https://github.com/microshow/fastokhttp
必杀技
支持GET、POST、PUT、PATCH、HEAD、DELETE等请求协议支持Json的提交,及自定义请求数据类型
支持带进度显示的多文件上传及下载回调
完美的Http缓存模式:
1.只读网络
2.只读缓存
3.先读网络,网络没有则读缓存
4.先读缓存,不管是否有缓存数据,都会再读网络然后响应调用端,共回调两次【推荐】
支持Https、自签名网站Https的访问、双向验证
支持失败重试机制,支持请求优先级
异步请求支持多个请求并发
支持异步取消
使用方法
Gradle
后续支持Gradlejar包导入
前往 https://github.com/microshow/fastokhttp/tree/master/jars 下载jar包初始化 建议在Application里初始化
fastokhttp初始化时分两种情况一般初始化(推荐)
直接初始化后,一切采用默认设置。FastOkHttpManager.init(Context context, File cachedDir, boolean debug);
高级初始化
private void initOKHttpConfig () { Map<String, String> commonParamMap = new HashMap<String, String>(); Map<String, String> commonHeaderMap = new HashMap<String, String>(); OkHttpManager okHttpManager = new OkHttpManager.Builder() .setCommenParams(commonParamMap) .setCommenHeader(commonHeaderMap) .setTimeout(Constants.REQ_TIMEOUT) .setDebug(false) .cachedDir(new File(getCacheDir(), "_data"))//缓存目录 (必须的配置) //.setCertificates(...) //.setHostnameVerifier(new SkirtHttpsHostnameVerifier()) .build(); okHttpManager.init(); }
需要的权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
调用请求
//第一种方式【推荐】 FastOkHttpManager.doGet(xxxx,xxxxx,xxxx...);或 FastOkHttpManager.doRequest(xxxx,xxxxx,xxxx...); //第二种方式 OkHttpTask okHttpTask = new OkHttpTask(); okHttpTask.setUrl(url); okHttpTask.setCachePolicyMode(CachePolicyMode.POLICY_CACHED_AND_NETWORK); okHttpTask.doGet(new INetCallback<String>(){ @Override public void onSuccess(ResponseDataWrapper response, String t) { super.onSuccess(response, t); dataStr += "\n\n onSuccess isCacheData="+response.isCacheData()+" > datas:"+t ; data.setText(dataStr); } @Override public void onFailure(int errorCode, String msg) { super.onFailure(errorCode, msg); dataStr += "\n\n onFailure:"+msg ; data.setText(dataStr); } }); ... // 取消请求 okHttpTask.cancel(true);
代码混淆
// fastokhttp -dontwarn com.superman.fastokhttp.** -keep class com.superman.fastokhttp.**{*;} // okhttp -dontwarn okhttp3.** -keep class okhttp3.** {*;} -dontwarn okio.** -keep class okio.** {*;}
License
Copyright 2017 Super Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
相关文章推荐
- [置顶] 优雅设计封装基于Okhttp3的网络框架(完):原生HttpUrlConnction请求、多线程分发 及 数据转换
- 优雅设计封装基于Okhttp3的网络框架(六):HttpHeader接口设计实现 及 Response、Request封装实现
- 优雅设计封装基于Okhttp3的网络框架(一):Http网络协议与Okhttp3解析
- 优雅设计封装基于Okhttp3的网络框架(四):多线程下载添加数据库支持(greenDao)及 进度更新
- 基于OkHttp3封装网络请求框架
- 对 okhttp 网络框架的封装 easy-okhttp 推荐 国产 网络工具包
- 基于Retrofit、OkHttp、Gson封装通用网络框架
- Android基于http封装的网络请求框架
- 优雅设计封装基于Okhttp3的网络框架(五):多线程、单例模式优化 及 volatile、构建者模式使用解析
- 基于Retrofit、OkHttp、Gson封装通用网络框架
- 优雅设计封装基于Okhttp3的网络框架(三):多线程下载功能核心实现 及 线程池、队列机制、终止线程解析
- EasyHttp 基于OkHttp的网络请求框架
- 基于Retrofit、OkHttp、Gson封装通用网络框架
- 优雅设计封装基于Okhttp3的网络框架(二):多线程下载功能原理设计 及 简单实现
- Volley的框架解读一(Http的封装)
- Http网络连接框架工具类(基于volley.jar和Xutils.jar)
- OKHttp网络请求封装好的框架
- 如何封装自己的网络框架(RxJava+okHttp+Retrofit)
- okhttp-OkGo(okhttp-util升级版)网络请求框架(一)
- okhttp网络框架的封装实用