当前位置:网站首页 > 技术博客 > 正文

javapost请求数据



Java 11 引入了Java HttpClient API,实现了最新HTTP标准的客户端部分。它支持HTTP/1.1和HTTP/2,提供了同步和异步编程模型。

我们可以使用它发送HTTP请求并获取响应。在Java 11之前,我们不得不依赖原始的URLConnection实现,或第三方库如Apache HttpClient

在这个教程中,我们将学习如何使用Java HttpClient发送POST请求。我们将展示如何发送同步、异步以及并发POST请求,并查看如何添加身份验证参数和JSON。最后,我们将了解如何上传文件和提交表单数据,从而覆盖大部分常见用例。

在发送HTTP请求之前,我们需要先创建一个HttpClient实例。

实例可以通过其构建器进行配置和创建,使用方法。如果没有特殊配置需求,我们可以使用实用方法创建一个默认客户端:

 

默认使用HTTP/2,如果服务器不支持HTTP/2,它会自动降级到HTTP/1.1。

现在,我们准备好使用构建器创建一个实例。稍后我们会使用这个客户端实例发送请求。POST请求的最小参数包括服务器URL、请求方法和主体:

 

请求主体需要通过类提供。这是一个响应式流发布者,按需发布请求体的流。在我们的示例中,我们使用了一个不发送请求主体的body发布者。

现在我们已经准备好了POST请求,让我们看看发送它的不同方式。

我们可以使用默认的方法发送准备好的请求。这个方法将阻塞代码直到收到响应

 

实用工具实现了各种有用的处理器,例如将响应体作为处理或将响应体流式写入文件。一旦收到响应,对象将包含响应状态、头和体:

 

我们可以使用方法异步发送上一个示例中的相同请求。与同步方法不同,这个方法会立即返回一个实例

 

一旦可用,它将完成并返回:

 

我们可以结合Stream和来 并发发送多个请求并等待它们的响应

 

现在,让我们等待所有请求完成,以便一次处理它们的响应:

 

由于我们使用了和方法组合所有响应,我们得到了一个新的,其中包含了我们的响应:

 

我们可以在客户端级别设置一个身份验证器,以便在所有请求中进行HTTP身份验证

 

然而,不会在服务器发送带有头的挑战时自动发送基本凭据。

为了绕过这个问题,我们可以始终手动创建并发送Authorization请求头:

 

使用 工具类可以很方便的发送各种数据类型,从类型到文件上传。我们可以将JSON数据作为字符串类型发送:

 

让我们创建一个临时文件,以便通过上传:

 

提供了单独的方法,用于将文件添加到POST请求体中:

 

与文件不同,没有提供专门用于提交表单数据的方法。因此,我们仍然需要使用BodyPublishers.ofString方法

 

但是,我们需要将表单数据从转换为,使用自定义实现:

 

在这篇文章中,我们探讨了Java 11中引入的Java HttpClient API发送POST请求的方法

我们学习了如何创建实例和准备POST请求。我们看到了如何同步、异步和并发发送准备好的请求。接着,我们也了解了如何添加基本身份验证参数。

最后,我们研究了如何向POST请求添加主体。我们涵盖了JSON负载、文件上传和表单提交。

如往常一样,完整的源代码可在GitHub上找到。

  • 上一篇: 火鸟字幕组的礼包密码
  • 下一篇: usb mount
  • 版权声明


    相关文章:

  • 火鸟字幕组的礼包密码2025-03-12 14:01:00
  • 内连接,左连接,右连接关键字2025-03-12 14:01:00
  • java学会增删改查达到什么水平2025-03-12 14:01:00
  • http请求头信息有哪些2025-03-12 14:01:00
  • python面向对象编程指南2025-03-12 14:01:00
  • usb mount2025-03-12 14:01:00
  • 什么情况下用malloc2025-03-12 14:01:00
  • 1、javascript的数据类型有哪些?2025-03-12 14:01:00
  • oracle rownum=1什么意思2025-03-12 14:01:00
  • 生成树协议百科2025-03-12 14:01:00