Unity Android 之 在Unity 中引入 OkHttp的操作注意(OKHttp4.xx- kotlin 的包)简单记录

Unity Android 之 在Unity 中引入 OkHttp的操作注意(OKHttp4.xx- kotlin 的包)简单记录

目录

[Unity Android 之 在Unity 中引入 OkHttp的操作注意(OKHttp4.xx- kotlin 的包)简单记录](#Unity Android 之 在Unity 中引入 OkHttp的操作注意(OKHttp4.xx- kotlin 的包)简单记录)

一、简单介绍

[二、OKHttp 4.xx 的 SDK 封装 aar 给 Unity 的使用注意](#二、OKHttp 4.xx 的 SDK 封装 aar 给 Unity 的使用注意)

[三、附录 OKHttp 的一些基础知识](#三、附录 OKHttp 的一些基础知识)

1、这个程序下载一个URL,并将其内容作为字符串打印出来

[2、Post 请求服务](#2、Post 请求服务)

[3、OkHttp 的使用要求](#3、OkHttp 的使用要求)


一、简单介绍

整理一些在Unity上可以方便调用 Android 方法的一些接口脚本,便于后期开发使用。

本次介绍在Android 中使用 OkHttp 进行的功能封装,然后打包成 aar 给Unity使用,OkHttp 4.0之前没有带 kotlin 代码的,以正常的方式封装给Unity 调用即可,但是OkHttp 4.0之后SDK有 kotlin 代码 就需要其他的处理,再给 Unity 使用的时候。

OkHttp 官网:Overview - OkHttp

OkHttp GitHub 地址:GitHub - square/okhttp: Square's meticulous HTTP client for the JVM, Android, and GraalVM.

HTTP是现代应用程序的网络方式。这是我们交换数据和媒体的方式。高效地使用HTTP可以让你的东西加载得更快,节省带宽。

OkHttp是一个默认高效的HTTP客户端:

  • HTTP/2支持允许同一个主机上的所有请求共享一个套接字。
  • 连接池可以减少请求延迟(如果HTTP/2不可用)。
  • 透明的GZIP压缩下载大小。
  • 响应缓存完全避免了重复请求的网络。

当网络出现问题时,OkHttp会持续运行:它会静默地从常见的连接问题中恢复。如果你的服务有多个IP地址,OkHttp会在第一次连接失败时尝试其他地址。对于IPv4+IPv6和托管在冗余数据中心的服务来说,这是必要的。OkHttp支持现代TLS特性(TLS 1.3、ALPN、证书钉扎)。它可以配置为支持广泛连接。

使用OkHttp很简单。它的请求/响应API使用流畅的构建器和不可变性设计。它既支持同步阻塞调用,也支持带回调的异步调用。

二、OKHttp 4.xx 的 SDK 封装 aar 给 Unity 的使用注意

1、处理需要对应的 okhttp 包之外,还需要 okio-jvm 对应包

2、然后封装到成 aar 即可,如果是 compileOnly,注意对应的 okhttp 和 okio-jvm 也需要引入Unity 的 Plugin-Android 文件夹中

3、在配置中勾选 一下 Custom Main Gradle Tempale

4、在 mainTemplate.gradle 中 添加 implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.4.10'

5、以上,少了一些配置可能打包运行会报错

三、附录 OKHttp 的一些基础知识

1、这个程序下载一个URL,并将其内容作为字符串打印出来

java 复制代码
OkHttpClient client = new OkHttpClient();

String run(String url) throws IOException {
  Request request = new Request.Builder()
      .url(url)
      .build();

  try (Response response = client.newCall(request).execute()) {
    return response.body().string();
  }
}

2、Post 请求服务

java 复制代码
public static final MediaType JSON = MediaType.get("application/json");

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();
  }
}

3、OkHttp 的使用要求

OkHttp支持Android 5.0+ (API level 21+)和Java 8+。

OkHttp依赖Okio来实现高性能I/O和Kotlin标准库。它们都是具有强大向后兼容性的小型库。

我们强烈建议你保持OkHttp的最新状态。与自动更新web浏览器一样,与HTTPS客户端保持同步是防范潜在安全问题的重要手段。我们跟踪动态TLS生态系统并调整OkHttp以提高连通性和安全性。

OkHttp使用你平台内置的TLS实现。在Java平台上OkHttp还支持Conscrypt于一体的BoringSSL与Java。如果Conscrypt是第一个安全提供者,OkHttp会使用它:

java 复制代码
Security.insertProviderAt(Conscrypt.newProvider(), 1);

OkHttp 3.12。x分支支持Android 2.3+ (API级别9+)和Java 7+。这些平台不支持TLS 1.2,不应该被使用。

相关推荐
雪芽蓝域zzs34 分钟前
IDEA工具下载、配置和Tomcat配置
android·tomcat·intellij-idea
xueqianliying37 分钟前
Android 定位 获取当前位置 (Kotlin)
android
闲暇部落39 分钟前
多线程详解——Kotlin多线程几种实现方式
android·kotlin·多线程
m0_748235955 小时前
CentOS 7使用RPM安装MySQL
android·mysql·centos
ac-er88888 小时前
Yii框架中的队列:如何实现异步操作
android·开发语言·php
流氓也是种气质 _Cookie10 小时前
uniapp 在线更新应用
android·uniapp
zhangphil12 小时前
Android ValueAnimator ImageView animate() rotation,Kotlin
android·kotlin
徊忆羽菲13 小时前
CentOS7使用源码安装PHP8教程整理
android
编程、小哥哥14 小时前
python操作mysql
android·python
Couvrir洪荒猛兽14 小时前
Android实训十 数据存储和访问
android