okhttp-utils是张鸿洋是基于OkHttp封装的框架库。实际工作中,使用的不多,对于小型项目的网络请求和文件传输可以考虑直接使用。否则还是基于主流的OkHttp+Retrift+RxJava框架。

  对于OkHttp使用,可以自己根据自己项目需要,做一些封装。如果应付手头临时项目,可以借鉴GitHub上一些开源OkHttp封装库.只要去GitHub上搜索下OkHttp 会出来很多封装的框架。

  分析okhttp-utils使用,只是用于自己学习了解。

一.将okhttp-utils当做module引入项目中

    

二.okhttp-utils引入到项目中文件列表目录:

        

三.okhttp-utils 基本使用

  1. //get 请求数据

OkHttpUtils.get().url(url).id(100).build().execute(new MyStringCallback());

  2.//post 请求数据

OkHttpUtils.postString().url(url).mediaType(MediaType.parse("application/json; charset=utf-8")).content(new Gson().toJson(new User("zhy", "123"))).build().execute(new MyStringCallback());        

  3.//上传文件

OkHttpUtils.postFile().url(url).file(file).build().execute(new MyStringCallback());

  4.//加载图片

OkHttpUtils.get().url(url).tag(this).build().connTimeOut(20000).readTimeOut(20000).writeTimeOut(20000).execute(new BitmapCallback(){@Overridepublic void onError(Call call, Exception e, int id){mTv.setText("onError:" + e.getMessage());}@Overridepublic void onResponse(Bitmap bitmap, int id){Log.e("TAG", "onResponse:complete");mImageView.setImageBitmap(bitmap);}});    

  5.//上传单个文件

OkHttpUtils.post()//
        .addFile("mFile", "messenger_01.png", file).url(url).params(params)//带表单数据
        .headers(headers).build().execute(new MyStringCallback());    

  6.//上传多个文件

OkHttpUtils.post().addFile("mFile", "messenger_01.png", file).addFile("mFile", "test1.txt", file2).url(url).params(params)//带表单数据
        .build().execute(new MyStringCallback());    

  7.//下载文件

OkHttpUtils.get().url(url).build().execute(new FileCallBack(Environment.getExternalStorageDirectory().getAbsolutePath(), "gson-2.2.1.jar"){@Overridepublic void onBefore(Request request, int id){}@Overridepublic void inProgress(float progress, long total, int id){//进度条显示mProgressBar.setProgress((int) (100 * progress));Log.e(TAG, "inProgress :" + (int) (100 * progress));}@Overridepublic void onError(Call call, Exception e, int id){Log.e(TAG, "onError :" + e.getMessage());}@Overridepublic void onResponse(File file, int id){Log.e(TAG, "onResponse :" + file.getAbsolutePath());}});    

  定义的公共回调方法:

public class MyStringCallback extends StringCallback{@Overridepublic void onBefore(Request request, int id){}@Overridepublic void onAfter(int id){}@Overridepublic void onError(Call call, Exception e, int id){e.printStackTrace();}@Overridepublic void onResponse(String response, int id){Log.e(TAG, "onResponse:complete");mTv.setText("onResponse:" + response);switch (id){case 100:Toast.makeText(MainActivity.this, "http", Toast.LENGTH_SHORT).show();break;case 101:Toast.makeText(MainActivity.this, "https", Toast.LENGTH_SHORT).show();break;}}@Overridepublic void inProgress(float progress, long total, int id){Log.e(TAG, "inProgress:" + progress);mProgressBar.setProgress((int) (100 * progress));}}        

转载于:https://www.cnblogs.com/bugzone/p/okhttp-utils.html

Android 开源框架 ( 二 ) 基于OkHttp进一步封装的okhttp-utils介绍相关推荐

  1. Android开源框架源码鉴赏:Okhttp

    文章目录 一 请求与响应流程 1.1 请求的封装 1.2 请求的发送 1.3 请求的调度 二 拦截器 2.1 RetryAndFollowUpInterceptor 2.2 BridgeInterce ...

  2. Android MVVM封装,MVVM: 这是一个android MVVM 框架,基于谷歌dataBinding技术实现

    MVVM 这是一个android MVVM 框架,基于谷歌dataBinding技术实现.dataBinding 实现的 V 和 VM的关联:使用IOC架构实现了 M 和 V的关联. 框架具有以下功能 ...

  3. 2019年 Android 开源框架 排行榜 TOP 60

    2019年 Android 开源框架 排行榜 TOP 50 1.Retrofit 一句话介绍:Retrofit是一款类型安全的网络框架,基于HTTP协议,服务于Android和java语言 上榜理由: ...

  4. Android开源框架【集合】

    Android开源框架[集合] 图解一览 Square& JakeWharton 框架名称 功能描述 Picasso 一个强大的图片下载与缓存的库 OkHttp Square出品,一个Http ...

  5. Android开源框架源码鉴赏:LruCache与DiskLruCache

    关于作者 郭孝星,程序员,吉他手,主要从事Android平台基础架构方面的工作,欢迎交流技术方面的问题,可以去我的Github提issue或者发邮件至guoxiaoxingse@163.com与我交流 ...

  6. Android开源框架PowerfulViewLibrary——PowerfulEditText的介绍和源码解析

    本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 转载请注明出处:http://blog.csdn.net/chay_chan/article/details/63685905 An ...

  7. android mvvm官方文档,MVVM: 这是一个android MVVM 框架,基于谷歌dataBinding技术实现

    MVVM 这是一个android MVVM 框架,基于谷歌dataBinding技术实现.dataBinding 实现的 V 和 VM的关联:使用IOC架构实现了 M 和 V的关联. 框架具有以下功能 ...

  8. android+捕获google账户+cancel按钮,MVVM: 这是一个android MVVM 框架,基于谷歌dataBinding技术实现...

    MVVM 这是一个android MVVM 框架,基于谷歌dataBinding技术实现.dataBinding 实现的 V 和 VM的关联:使用IOC架构实现了 M 和 V的关联. 框架具有以下功能 ...

  9. Android——开源框架Universal-Image-Loader + Fragment使用+轮播广告

    原文地址: Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用 Android 开源框架Universal-Image-Loader完全解析(二) ...

最新文章

  1. android技术内幕心得
  2. 英特尔因代言人再起风波企业网络推广之下遭抵制的Evo平台谁来背锅?
  3. 【DBMS 数据库管理系统】OLAP 核心技术 : 数据方体 ( 数据方体 | 数据方体格结构 | 数据单元 )
  4. 从零开始发布web项目(五)
  5. power bi 中计算_Power BI中的期间比较
  6. 【杭州云栖】边缘计算ENS:拓展云的边界
  7. jq之animate()操作多个属性
  8. web.xml 中的listener、 filter、servlet 加载顺序及其详解
  9. 一道计算时间的机试题
  10. HTML5中最重要的技术点有哪些?
  11. 选STM32还是51单片机,对于时间有什么要求
  12. NORDIC nRF52840 输入引脚初始化及中断操作
  13. 如何使用 iOS 7 的 AVSpeechSynthesizer 制作有声书(1)
  14. 基于C语言和LPC1114开发板的嵌入式实验 SysTick实验、定时器实验、LED呼吸灯实验、蜂鸣器实验
  15. 基于Opencv的开源的中文车牌识别系统
  16. 浏览器安全——Web页面安全浏览器网络安全(HTTPS)浏览器系统安全
  17. MySql 查询数据库中所有表名
  18. 【超级震撼】图示从极限大到极限小的世界(10亿光年到0.1飞米)
  19. 天敏T2四核增强版ROOT方法
  20. C++把一个字符转换成string方法.

热门文章

  1. 从C# String类理解Unicode(UTF8/UTF16)
  2. 数据库设计五要点 让数据库设计更加规范
  3. viewController详解
  4. IOS基础:ActionSheet(上拉菜单)的实现
  5. .NET的资源并不限于.resx文件,你可以采用任意存储形式[上篇] (转载)
  6. 蓝桥杯第七届国赛JAVA真题----七星填数
  7. pip install mysqlclient报错fails with EnvironmentError: mysql_config not found
  8. (硬 核)使用MySQL管理和查询数据 ( 入 门 须 知 ②)
  9. prim求最短路径C语言,[图论]Prim算法求最小支撑树和最短路径
  10. eclispe Springboot项目修改html,jsp 页面不能及时刷新