【发布时间】:2012-12-04 00:20:11
【问题描述】:
希望这个问题证明是建设性的,不会让我发火(“你试过谷歌吗?”)。我正在慢慢摆脱 Java 新手状态,目前正面临一个需要做出的决定,我需要为涉及测试 RESTful 服务的工作构建一个项目。我们有一个使用 HTTPClient 的内部 java 框架设置。但是,我阅读了一些建议,指出当您处理 RESTful 服务时,最好使用 Jersey 等特定于 REST 的工具。这里的一位开发人员建议我使用 RestTemplate。我已经开始阅读 RestTemplate 文档以及查看我们自己的 HTTPClient 实现的代码。基本上我可以 A:构建现有的 HTTPClient 工作以将其塞入我自己的项目中,或者 B:使用 RestTemplate 创建一个全新的项目。从长远来看,A 可能更快,而 B 可能更合适/更有价值。正如我前言,虽然我对 Java 知识有很好的基础(处理类、方法、修饰符、包结构、继承和组合等),但我现在才开始掌握像我刚刚描述的这个问题这样的细节(使用哪些工具)。我很高兴能就这两种选择存在的一些缺点和优点获得一些专家意见。
附加说明:我在处理 REST 服务时经常使用 soapui。我对 REST 概念的熟悉使我倾向于 RestTemplate(一旦我开始编写代码,它似乎更能即插即用我在 soapui 中所做的事情),但如果 HTTPClient 可以给我相同的功能,即使它更冗长,并且已经为我完成了大部分工作,我想听听只走 HTTPClient 路线的理由。
【问题讨论】:
-
RestTemplate 是 HttpClient 的便捷包装器。它只是简化和抽象了一些最常见的用例和代码。
-
除非我得到任何其他输入,否则我可能会使用 rest 模板。
-
做了一个关于面,刚刚整理出纯HTTPClient。现在我正试图弄清楚为什么 eclipse 告诉我没有这样的方法 .releaseConnection() :(
-
我认为 OP 想知道诸如:它是否阻塞、支持 HTTP/2、支持流、如何通过 HTTPS 连接等。我认为它是完全有效的。实际上,谷歌把我带到了这里(