Okhttp3的使用详解

Maxim

  • if you don't go for a walk,you will think this is the world.

简介

HTTP是现代应用常用的一种交换数据和媒体的网络方式,高效地使用HTTP能让资源加载更快,节省带宽。
OkHttp是一个高效的HTTP客户端
支持Http和Http/2,可适用于Android以及Java应用的网络请求客户端


特性

  • 支持HTTP/2,允许共享同一个socket连接
  • 连接池的存在可以有效减少请求的所需的准备工作
  • GZIP压缩减少响应数据的大小
  • 自动缓存响应数据,可以避免每次都发送完全重复的请求

OkHttp可以在请求出现问题时 坚守 灵活处理:针对于常见的连接问题,OkHttp会默认自动帮应用做修复处理。如果你的服务器有多个IP地址,OkHttp将会在请求失败时,不断尝试连接另外的IP地址。当服务器同时支持IPv4+IPv6,或者主机服务器出现数据故障时,这是非常有用的。如果握手失败,OkHttp会自动初始化一个带有TLS(SNI, ALPN)协议的新连接向支持TLS 1.0的服务器再次发起请求。

note: OkHttp 支持 Android 2.3 及以上版本Android平台, 对于 Java, JDK 1.7及以上.


使用配置

GRADLE

modle下build.gradle配置添加如下依赖后进行同步


dependencies {
  implementation 'com.squareup.okhttp3:okhttp:3.11.0'
  implementation  'com.squareup.okio:okio:1.7.0'
//拦截器.
implementation 'com.squareup.okhttp3:logging-interceptor:3.9.1'
}

添加权限

AndroidManifest.xml添加权限:网络,文件读写

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

okHttp的基本用法

  • OkHttp3发送POST请求
    同步POST请求
    execute
    异步POST请求
    enqueue

  • 文件上传的原理
    表单元素的enctype属性指定的是表单数据的编码方式,该属性有3个值:

  1. application/x-www-form-urlencoded:这是默认编码方式,它只处理表单域里的value属性值,采用这种编码方式的表单会将表单域的值处理成URL编码方式。
  2. multipart/form-data:这种编码方式的表单会以二进制流的方式来处理表单数据,这种编码方式会把文件域指定文件的内容也封装到请求参数里。
  3. text/plain:这种方式主要适用于直接通过表单发送邮件的方式。
    6,OkHttp3进行多文件上传并且携带表单字段
    POST请求的基础上,创建一个MultipartBody
    RequestBody requestBody = new MultipartBody.Builder()
    .setType(MultipartBody.FORM)//设置数据类型
    .addFormDataPart("username", "zxn")//添加参数
    .addFormDataPart("file","1.txt", RequestBody.create(MultipartBody.FORM, file))//变量,文件名,请求体
    .build();

参考文献

okhttp管网介绍

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,239评论 25 709
  • 在我对着儿子说,你今晚太让我失望了的时候,我突然警觉,这是我对自己的不满! 一个周末两天就又这么混过去了,不再像从...
    丝缕阳光阅读 1,729评论 0 0
  • 今天的早餐,随便吃吃了。 湖边坐坐,吃点餐后水果。 突然下起雨来,在湖区的最后一天,本来打算绕湖行,然后赶下午四点...
    大抗小妈阅读 2,540评论 0 0

友情链接更多精彩内容