gpt4 book ai didi

android - 如果 Retrofit 已经在内部使用 OkHttp,为什么开发人员将 OkHttp 设置为 Retrofit

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:07:37 26 4
gpt4 key购买 nike

我知道,Retrofit 在内部使用 OkHttp。但是,我可以看到一些开发人员提供了以下方法的应用

return new Retrofit.Builder()
.baseUrl(BuildConfig.API_ENDPOINT)
.client(getClient()) // we can add OkHttpClient client there

那么,有人可以澄清为什么需要这样做吗?

我听说这对测试很有帮助,因为我们可以在模拟 HTTP 请求期间应用自定义拦截器

最佳答案

Retrofit 本身确实获得了 OkHttp 的实例,但不对 OkHttpClient 执行任何自定义。在很多情况下,您可能需要自定义客户端以利用 OkHttp 的灵 active 。看看你能做什么in this JavaDoc .你可以看到你可以做很多事情,比如设置你自己的超时,你自己的 DNS,你自己的自定义缓存(在图形密集型应用程序中会派上用场),你自己的代理,基于用户设备的限制协议(protocol)(一个国家可能阻止 HTTPS,因此您希望能够在这种情况下尽快回退到 HTTP)等等。

编辑:在大多数使用情况下,这可能不需要,例如在对 REST API 端点的简单 API 调用中。但在某些情况下,例如视频流、VPN 或代理服务,或者任何需要您根据地理区域或不同网络连接自定义您的应用程序的情况,您都可以从中受益。想到的其他例子是某些国家/地区阻止的某些消息传递或社交应用程序。甚至像 Spotify 或 YouTube 这样的应用程序。当用户通过 WiFi 连接时,您希望通过高速协议(protocol)(比如 UDP)将他们路由到您的高速服务器。但是,如果用户通过 3G 连接,您希望将他们路由到不同的服务器并使用 TCP 协议(protocol)来确保质量。

关于android - 如果 Retrofit 已经在内部使用 OkHttp,为什么开发人员将 OkHttp 设置为 Retrofit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45961109/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com