有了 OkHttp,为什么还要使用 Retfit 呢

使用 OkHttp,我们可以发出 HTTP 请求,然后从服务器获得响应:

OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(url)
.build();
Response response = client.newCall(request).execute();

然后用 Gson lib 将响应转换为我们需要的对象。

来自 Square/OkHttp 文档:

它的请求/响应 API 使用流畅的构建器和 它支持同步阻塞调用和异步调用 有回复的电话

我从 堆栈溢出上读到:

如果可用,便会自动使用 OkHTTP。

所以我的问题是:

  1. 翻新到底是为了什么?
  2. 什么样的翻新能做到 OkHttp 做不到?

我认为 OkHttp 和 Gson 解决了请求 API 问题, 但是改造为我们解决了什么问题呢?

67460 次浏览

使用 OkHttp 我们可以发出 HTTP 请求然后从服务器获得响应... 然后使用 Gson lib 将响应转换为我们需要的对象

注意,在代码片段中,您跳过了两个值得注意的步骤: 生成 URL 和使用 Gson 实际解析 JSON。

所以我的问题是“翻新”到底是为了什么?

它用于生成 URL (使用绑定到特定 REST API 的类型感知生成代码)并实际使用 Gson 解析 JSON。换句话说,它执行您在代码片段中跳过的操作。

此外,对于某些类型的 REST 操作(例如,POST) ,它有助于组装要提交的内容(例如,生成编码的表单)。

根据定义,您不需要使用 Requfit。翻新是由计算机程序员编写的计算机代码。其他人可以编写代码来完成逆转修复所做的工作。

为什么卢克菲特使用 OkHttp

改造需要执行 HTTP 操作。它在可用的地方使用 OkHttp,提供所有的服务: HTTP/2和 SPDY 支持,可插入的拦截器等等。

如果要在应用程序中映射服务器 API,则应该使用改造(类型安全)。改造只是一个包装在 okHTTP 上的 API 适配器。

如果您希望键入安全并将交互代码与 API 模块化,请使用改造。除此之外,okHTTP 和 Afterfit 的底层性能、请求默认值等都是相同的。

另外,我建议听听 Jesse Wilson (主要 android HTTP 客户端的开发者)的 这个播客,在那里他深入讲述了 Apache HTTP 客户端、 HTTPURLConnection、 okHTTP 和 Afterfit 的开发历史。

改造 VS OkHttp 原因很简单 : OkHttp 是一个纯 HTTP/SPDY 客户端,负责任何低级网络操作、缓存、请求和响应操作等等。相比之下,Revifit 是在 OkHttp 之上构建的高级 REST 抽象。便携式系统2与 OkHttp 紧密耦合,并大量使用它。

OkHttp 函数: 连接池、 gzip、缓存、从网络问题中恢复、同步和异步调用、重定向、重试... 等等。

改造功能: URL 操作、请求、加载、缓存、线程处理、同步... 它允许同步和异步调用。

改造基本上是在 OKHTTP 之上的架构,它内部使用 OkHttp 发出任何请求,如果我们想发出任何请求,在 jave 的前面我们有 HTTPUrl 连接或 HTTPS Url 连接知道改造 okHttp 处理所有事情(它分成包,标记头) ,如果我们需要发送一些信息。

翻新是一个基于静息原则的静息客户端。

OkHttp 是一个 HTTP 客户端,它支持 HTTP/2和 SPDY。

是一个针对 android 和 java 的类型安全的 HTTP 客户端

- > OkHttp 依赖于 Okio。

- > 改造依赖于 OkHttP,

所以龟裂基本上是一个包装在 OKHTTP,它使用时,必要的,可以很容易地管理连接超时和读超时,只要使用它的方法,也增加了拦截器。

希望我的回答! ! ! 快乐编码! ! ! !

更多信息请参考 https://square.github.io/retrofit

OkHttp: 一个开源的 HTTP 客户端。HTTP 是现代应用程序网络的方式。这是我们交换数据和媒体的方式。有效地使用 HTTP 可以让你的东西加载更快,节省带宽; 改造: Android 和 Java 的类型安全 HTTP 客户端。改造将您的 HTTPAPI 转换为 Java 接口。

OkHttp 和 Afterfit 主要可以归类为“ API”工具。

OkHttp 提供的一些功能包括: • HTTP/2支持允许对同一主机的所有请求共享一个套接字。 •连接池可以减少请求延迟(如果 HTTP/2不可用)。 •透明 GZIP 缩小下载大小。

另一方面,Retfit 提供了以下关键特性: • URL 参数替换和查询参数支持 •对象转换为请求主体(例如: JSON、协议缓冲) 多部分请求正文和文件上传