💡
原文英文,约1000词,阅读约需4分钟。
📝
内容提要
Java 26将于3月17日发布,新增对HTTP/3的支持,默认仍为HTTP/2。HttpClient提供多种连接策略,新增文件上传方法允许上传文件特定区域,超时设置也进行了更新。此外,HttpClient将不再为无体的非POST/PUT请求发送Content-Length头。这是对HttpClient用户的重要更新。
🎯
关键要点
- Java 26将于3月17日发布,新增对HTTP/3的支持,默认仍为HTTP/2。
- HttpClient提供多种连接策略,允许开发者在HTTP/1.1、HTTP/2和HTTP/3之间进行选择。
- 新增的文件上传方法允许上传文件特定区域,避免将整个文件读入内存。
- 超时设置更新,现已覆盖响应体的消费时间。
- HttpClient将不再为无体的非POST/PUT请求发送Content-Length头,符合RFC9110语义。
❓
延伸问答
Java 26中对HttpClient的主要更新是什么?
Java 26新增对HTTP/3的支持,默认仍为HTTP/2,并更新了文件上传方法和超时设置。
如何在HttpClient中使用HTTP/3?
可以在HttpClient构建时设置版本为HTTP/3,或在HttpRequest构建时指定版本。
Java 26中新增的文件上传方法有什么优势?
新增的方法允许上传文件特定区域,避免将整个文件读入内存,适合处理大文件。
HttpClient的超时设置有什么变化?
超时设置现在覆盖响应体的消费时间,之前仅适用于响应头的接收。
Java 26中HttpClient不再发送Content-Length头的原因是什么?
这是为了符合RFC9110的语义,非POST/PUT请求且无体的情况下不再发送Content-Length头。
如何处理HTTP/3连接的兼容性问题?
可以采取多种策略,如优先发送HTTP/3请求,或并行发送HTTP/3和HTTP/2请求。
➡️