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,不应该被使用。

相关推荐
JMchen1238 小时前
现代Android图像处理管道:从CameraX到OpenGL的60fps实时滤镜架构
android·图像处理·架构·kotlin·android studio·opengl·camerax
快点好好学习吧8 小时前
phpize 依赖 php-config 获取 PHP 信息的庖丁解牛
android·开发语言·php
是誰萆微了承諾8 小时前
php 对接deepseek
android·开发语言·php
Dxy12393102169 小时前
MySQL如何加唯一索引
android·数据库·mysql
冠希陈、11 小时前
PHP 判断是否是移动端,更新鸿蒙系统
android·开发语言·php
天人合一peng11 小时前
Unity中button 和toggle监听事件函数有无参数
前端·unity·游戏引擎
_乐无13 小时前
Unity加载gly 点云 高斯泼溅渲染
unity
坚定信念,勇往无前13 小时前
unity发布BuildWebGL.wasm 加载过慢
unity·wasm
晚霞的不甘14 小时前
Flutter for OpenHarmony从零到一:构建《冰火人》双人合作闯关游戏
android·flutter·游戏·前端框架·全文检索·交互
2601_9498333914 小时前
flutter_for_openharmony口腔护理app实战+饮食记录实现
android·javascript·flutter