gpt4 book ai didi

java - 带有 Apache HTTP 客户端 4.5 的 Jersey REST 客户端与改造

转载 作者:IT老高 更新时间:2023-10-28 20:40:15 26 4
gpt4 key购买 nike

我阅读了很多文章来为 java 应用程序找到最好的 Rest Client,我发现最终将 Jersey 与 Apache HTTP 客户端 4.5 一起使用很棒,但在很多文章中我发现现在 Retrofit 是最好的(我没有提到Volley,因为在我的情况下,我不需要 API 支持缓存。

Retrofit 是否更适合 Java 客户端应用程序。还是对安卓更好?为什么我之前没有找到这个比较..他们无法比较?

我能否比较它们的性能、连接池、它们在哪一层工作、请求和响应的压缩、超时、反序列化?

HTTP3 不支持连接池,这就是为什么改造通常用于 android 吗?所以对于一个会导致连接泄漏的普通java应用程序来说是不实用的。

我的目标是找到最好的具有高性能、支持大量连接的 Rest API 客户端。

提前谢谢你

最佳答案

您将不同的东西混合在一起。提前清理:

Retrofit是一个与 REST API 交互的客户端库。因此,它提供与 Jersey 相同的抽象级别。 , RESTeasy或 Spring 的 RestTemplate .它们都允许使用类型安全的 API 与 REST API 进行交互,而无需处理序列化、请求构建和响应处理等低级方面。

这些库中的每一个都使用底层的 HTTP 客户端与 HTTP 服务器进行实际通信。示例是 Apache HTTP client你提到的,OkHttp或普通的 HttpUrlConnection随 JDK 一起提供。

您通常可以混合搭配不同的 REST 客户端库和 HTTP 客户端,除了 Retrofit because Retrofit has a hard dependency on OkHttp since version 2 (使用 Retrofit 1.x,您可以使用 Apache HTTP 客户端、HttpUrlConnection 或 OkHttp)。

回到实际问题:什么时候选择。

Android:这里很简单,因为 JAX-RS ,Android 不支持 Jersey 和 RESTeasy 背后的 API/技术。因此,Retrofit 或多或少是您唯一的选择,如果您不想直接与 HTTP 对话,则可能是 Volley。 Spring 也不可用,Spring Android is abandoned .

JRE/JDK:在这里您可以选择完整的选项。

  • 如果您想要一个快速简单的解决方案来实现没有 SDK 或 JAX-RS 接口(interface)的第三方 API,那么改造可能会很好。
  • 如果您使用 Spring 并且没有 JAX-RS 接口(interface),或者您不想购买 JAX-RS,即也在服务器端使用它,那么 Spring 的 RestTemplate 是一个不错的选择。
  • 如果您想在客户端和服务器之间共享接口(interface)定义,或者如果您完全使用 JavaEE,那么 JAX-RS(Jersey、RESTeasy 等)是一个不错的选择。

关于性能:这里的主要驱动因素是花在 HTTP 和(反)序列化上的时间。因为(反)序列化是由 Jackson 或 protobuf 等专门的库执行的,并且都使用相同的库(或者您至少可以使用它们),所以应该没有任何有意义的区别。

关于java - 带有 Apache HTTP 客户端 4.5 的 Jersey REST 客户端与改造,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42199614/

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