为什么使用改造,当我们有OkHttp

2022-08-31 07:45:50

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

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

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

这是来自Square / OkHttp doc:

它的请求/响应API设计有流畅的构建器和不可变性。它支持同步阻塞调用和带回调的异步调用

我从stackOverFlow阅读

改装使用 OkHTTP 自动(如果可用)

.

所以我的问题是改造到底是为了什么?

什么改造可以做到OkHttp做不到的?!

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


答案 1

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

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

所以我的问题是改造到底是为了什么?

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

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

根据定义,您不需要使用改造。改造是计算机代码,由计算机程序员编写。其他人可以编写代码来执行Retrofit所做的操作。

为什么改造使用OkHttp

改造需要执行 HTTP 操作。它在可用的情况下使用OkHttp,用于OkHttp提供的所有内容:HTTP / 2和SPDY支持,可插入拦截器等。


答案 2

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

如果要键入安全并使用 API 模块化交互代码,请使用改造。除此之外,okHTTP和改造的基础性能,请求默认值等是相同的。

此外,我建议您收听Jesse Wilson(主要Android HTTP客户端的开发人员)的播客,他在其中深入探讨了Apache HTTP客户端,HTTPURLConnection,okHTTP和Retrofit的发展历史。


推荐