Ali*_*aka 8 java http httpurlconnection
我正在研究HttpURLConnection,自JDK 1.1,1997(现在差不多20年)以来存在,并且我非常惊讶它仍然是Java核心创建HTTP连接的官方方式.
自从它发布以来,许多库试图简化(/升级)HTTP连接的使用,比如Apache的HttpClient.
据我所知,没有HttpURLConnection向JDK添加包装器.
仍然是HttpURLConnection Java核心创建HTTP连接的官方方式吗?
如果没有,官方的方式是什么?
旧的HttpURLConnection是当前在Java SE中执行HTTP请求的标准方法.
Java EE 7带来了JAX-RS客户端API,这是使用基于HTTP协议构建的REST Web服务的标准方法.
将于2017年发布的Java SE 9将带来一个实现HTTP/2和WebSocket的新HTTP客户端API,并可替代旧版API.JEP 110中描述了新API的动机:HttpURLConnection
现有的
HttpURLConnectionAPI及其实现存在许多问题:
- 基础
URLConnectionAPI在设计时考虑了多种协议,几乎所有协议现已不存在(ftp,gopher等).- API早于HTTP/1.1并且过于抽象.
- 许多无证行为很难使用.
- 它仅在阻塞模式下工作(即每个请求/响应一个线程).
- 这很难维护.
是的。HTTPUrlConnection目前是官方方式。(如果“官方”是指“标准 Java 类库支持的方式”。)
许多人/团体尝试提出执行客户端 HTTP 的替代方法,并取得了不同程度的成功。然而,旧的(“官方”)方式仍然有效,并且在很多情况下它工作得足够好,不需要替代方案。
\n\nJava 具有很强的保持向后兼容性的文化。如果某个功能有效,就不要管它。即使是无法正常工作的功能通常也被标记为“已弃用” 1如果无法以向后兼容的方式修复,这是有充分理由的。Oracle 通过支持合同和专业产品在 Java 上赚钱。他们的主要客户是企业计算人员。企业计算人员希望他们 20 年前编写的应用程序能够继续工作……而不需要不断地修补来处理平台(即 Java)更新时出现的问题。
\n\n有关 Java 9(明年)中的详细信息,请参阅 @C\xc3\xa1ssio\ 的回答。
\n\n1 - 有些 Java API 在 JDK 1.1 中已弃用……但仍然受支持。
\n| 归档时间: |
|
| 查看次数: |
199 次 |
| 最近记录: |