首页 > 解决方案 > 如何从 Java 发送 HTTP 请求

问题描述

我正在创建 java 模块来解析 JSON 文件。

要接收文件,我需要发送 HTTP 请求。当我使用 curl 我的请求如下所示:

curl -X GET "https://***" -H "accept: application/json" -H "apikey: ***"

如何从 Java 发送等效的 HTTP 请求

标签: javahttp

解决方案


Java 有很多使用 HTTP 的选项。

选项1

从 Java 9 开始,有一个内置的 HTTP 客户端。因此,您可以使用它来创建请求,而无需任何第三方库。

一个简单的例子是这样的:

HttpRequest request2 = HttpRequest.newBuilder()
  .uri(new URI("some url"))
  .header("someHeader", "value1")
  .header("anotherHeader", "value2")
  .GET()
  .build();

有关更多示例,请参见此处

选项 2

使用第三方库,有很多:OkHttpClient,更“老派”的Apache Http Client (HttpComponents

选项 3

如果您使用的是 spring,则可以考虑使用 Spring 的 WebClient。Spring 中也有像 RestTemplate 这样的包装器可以派上用场,但这真的取决于你想使用什么。

许多客户端都带有应该正确设置的 http 连接池。此外,在您的示例中,我看到您使用 https - 所有这些客户端都支持它,但应该正确设置它。


推荐阅读