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 的一些基础知识)
[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,不应该被使用。