美文网首页
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