美文网首页
Okhttp3的使用详解

Okhttp3的使用详解

作者: CarlosLynn | 来源:发表于2018-06-22 21:29 被阅读22次

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'
}

添加权限

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管网介绍

相关文章

网友评论

      本文标题:Okhttp3的使用详解

      本文链接:https://www.haomeiwen.com/subject/gcelyftx.html