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

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

然后使用gson库将响应转换为我们需要的对象.

这是来自Square/OkHttp文档:

它的请求/响应API是用fluent Builder和

我从stackOverFlow开始读

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

.

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

什么 retrofit 能做到OkHttp做不到的?!

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

推荐答案

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

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

所以我的问题是, retrofit 到底是为了什么?

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

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

根据定义,您不需要使用改装.翻新是由计算机程序员编写的计算机代码.其他人可以编写代码来实现 retrofit 的功能.

为什么要改型使用OkHttp

retrofit 需要执行HTTP操作.它在可用的地方使用OkHttp,因为OkHttp提供了所有功能:HTTP/2和SPDY支持、可插入拦截器等.

Android相关问答推荐

如何正确增加LazyStream中的变量

Android设备.Net Maui上的mp3文件列表

在卡片上创建圆角底部边框

在Jetpack Compose中从LazyColumn中删除项目时发生IndexOutOf边界异常

如何判断堆肥是否为空?

在c中更新MVVMCross中TextView的Alpha#

如何在卡片视图右侧添加箭头

在Android RoomDB中使用Kotlin Flow和删除数据时如何解决错误?

验证硬编码密码

从 Firebase 云存储中获取照片会导致 Android Jetpack Compose 闪烁

我的观点在jetpack compose中相互重叠

如何在 react native 应用程序中显示复选框?当它在 android 模拟器中可见时

无法解析依赖项'com.github.smarteist:autoimageslider:1.4.0-appcompat'

在jetpack compose中将图像添加到脚手架顶部栏

Android:为什么 ICICI iMobile Pay 应用程序在我的应用程序中显示root/jailbroken设备?

在 Kotlin 客户端应用程序中发送 FCM 推送通知 - Firebase 云消息传递

Kotlin:如何在另一个变量的名称中插入一个变量的值

如何在 Jetpack Compose 中擦除画布时变得透明,现在我得到白色?

在 Jetpack Compose 中 Select 要省略的文本

react-native android项目未找到错误