OkHttp

Okhttp介绍

OkHttp是一款十分好用的Android网络框架,尽管官方提供了UrlConnection,但是OkHttp依然是最为广泛使用的网络请求方式。如果有一定程度的英语阅读能力,建议直接去官网阅读官方文档。前往Okhttp官网
作为一款优秀的网络框架,Okhttp有以下特性:

  1. 支持HTTP/2,允许所有同一个主机地址的请求共享同一个socket连接
  2. 连接池减少请求延时
  3. 透明的GZIP压缩减少响应数据的大小
  4. 缓存响应内容,避免一些完全重复的请求
    OkHttp支持任何Android 2.3以上平台,并且需要JDK 1.7以上。

OkHttp的使用

由于OkHttp是第三方框架,所以在使用前需要在gradle下添加依赖

implementation "com.squareup.okhttp3:okhttp:4.9.0"

OkHttp Get Url

Get是在开发中最常用的网络请求之一。

//新建一个OkHttpClient对象
OkHttpClient client = new OkHttpClient();String run(String url) throws IOException {//创建一个request对象Request request = new Request.Builder().url(url).get().build();
//获取响应并把响应体返回try (Response response = client.newCall(request).execute()) {return response.body().string();}
}

通过以上代码,就成功的发送了一个Get请求,并获取了响应。在这里返回了string类型,但是也可以返回二进制数组和inputstream(可以获取inputstream说明OkHttp支持大文件的传输)

OKHttp POST

POST也是常用的网络请求之一,用法与GET十分相似,只是多了RequestBody对象来携带需要传输的数据罢了。

public static final MediaType JSON= MediaType.get("application/json; charset=utf-8");OkHttpClient client = new OkHttpClient();String post(String url, String json) throws IOException {RequestBody body = RequestBody.create(JSON, json);Request request = new Request.Builder().url(url).post(body).build();try (Response response = client.newCall(request).execute()) {return response.body().string();}
}

至此,简单的OkHttp的简单应用已经介绍完了,OKHttp的使用就是如此简单。

Okhttp文件上传

File file = new File(Environment.getExternalStorageDirectory(), "FILE_NAME");RequestBody fileBody = RequestBody.create(MediaType.parse("application/octet-stream"), file);RequestBody requestBody = new MultipartBuilder().type(MultipartBuilder.FORM).addPart(Headers.of("Content-Disposition", "form-data; name=\"username\""), RequestBody.create(null, "hyb")).addPart(Headers.of("Content-Disposition", "form-data; name=\"mFile\", filename=\"hyb.mp4\""), fileBody).build();Request request = new Request.Builder().url("http://192.168.1.103:8080/okHttpServer/fileUpload").post(requestBody).build();Call call = mOkHttpClient.newCall(request);
call.enqueue(new Callback()
{//...
});

参考了鸿洋大神的博客。

OkHttp简单使用相关推荐

  1. Okhttp 使用与debug时留的大坑

    Okhttp简单辅助类与debug注意事项 先贴代码(代码不全,仅供参考) import android.os.Handler; import android.os.Looper; import an ...

  2. 接口测试——HtmlUnit、OkHttp

    HtmlUnit.OkHttp HtmlUnit 简单介绍 简单demo OkHttp 简单了解 简单demo HtmlUnit 简单介绍 HtmlUnit相比于HttpClient功能更加强大,就像 ...

  3. OkHttp的GET请求的实现方式

    今天给大家说一下okhttp的GET请求,这个请求方式是在我们以后的工作中是操作的非常多的,所以今天给大家说一下OKhttp简单的GET请求. 以下就是最简单的用Okhttp的GET请求来去做一做li ...

  4. OkHttp实现多线程断点续传下载,单例模式下多任务下载管理器,一起抛掉sp,sqlite的辅助吧

    丨版权说明 :<OkHttp实现多线程断点续传下载,单例模式下多任务下载管理器,一起抛掉sp,sqlite的辅助吧>于当前CSDN博客和乘月网属同一原创,转载请说明出处,谢谢. 最近项目需 ...

  5. Android-X5WebView封装(Cookie管理、进度监听、适配8.1系统等策略)

    本文已独家授权 郭霖 ( guolin_blog ) 公众号发布! 撸完了上一篇Android-X5WebView简介 之后,有些大兄弟可能觉得不过瘾呐,说你那样的都是很基础的啊(的确很基础),项目里 ...

  6. 菜鸟要飞java_Retrofit2[](更多视频教程关注微信公众号【菜鸟要飞】)等

    资源内容: Retrofit2[](更多视频教程关注微信公众号[菜鸟要飞])|____5.与RxJava结合使用(更多视频教程关注微信公众号[菜鸟要飞]).mp4|____4.Post请求介绍(更多视 ...

  7. OkHTTP3齐全的初级使用

    一.前言 自从Android4.4开始,google已经开始将源码中的HttpURLConnection替换为OkHttp,而在Android6.0之后的SDK中google更是移除了对于HttpCl ...

  8. 网络请求 - 收藏集 - 掘金

    Retrofit+RxJava 简单封装 - Android - 掘金 本文对Retrofit+RxJava的使用进行简单封装,简化使用. 请求结果统一封装成HttpResult类,并利用泛型对不通结 ...

  9. mysql存储过程调试_MYSQL存储过程调试过程

    mysql不像oracle有plsqldevelper工具用来调试存储过程,所以有几种简单的方式追踪执行过程: 1.用一张临时表,记录调试过程: 2.直接在存储过程中,增加select xxx,在控制 ...

最新文章

  1. Twilio能够在市场低谷成功上市,为什么以及有什么意义?
  2. 【Android 应用开发】Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介
  3. 第十八讲 傅里叶变换
  4. 【总结】SAP 供应商寄售/客户寄售
  5. cps1 cps2 android,图文教程:CPS1和CPS2模拟器使用
  6. SAP Spartacus的site context配置
  7. java局部刷新session过期_Ajax局部页面刷新和History API结合的陷阱
  8. kickstart安装
  9. IDEA debug模式,修改集合的值
  10. 英语学习—每天进步一丢丢系列(一)
  11. Static allocator 3
  12. LeetCode 第 3 题(Longest Substring Without Repeating Characters)
  13. android mount --bind挂载目录
  14. win7用VMware安装CentOs7搭建Linux环境
  15. 关于百度机器人搜索你网站的页面权限设置
  16. 测试岗面试,一份好的简历总可以让人眼前一亮
  17. JavaScript小项目总结
  18. 记一次盖茨木马应急响应
  19. 使用setoolkit制作简单钓鱼网站
  20. 装个JCreator+JDK文档

热门文章

  1. citespace使用常见问题的帮助
  2. android watchdog机制
  3. 基于区块链的供应链金融
  4. Postman请求运行顺序及Workflow
  5. VB6.0与51单片机、STM32进行串口通信
  6. 宇视摄像机 SDK取流失败解决方案
  7. 个推亮相GIAC全球互联网架构大会,带来智能运营创新产品
  8. 谷歌浏览器缩略图消失问题解决
  9. 智能窗帘多种应用情景模式
  10. Excel链接mysql语句查询_Excel表中连接sql并使用sql语句引用excel单元格数据作为查询条件...