📅  最后修改于: 2023-12-03 15:24:30.343000             🧑  作者: Mango
在 Java Spring 中,我们可以使用 RestTemplate 发送 GET 请求。RestTemplate 是 Spring 提供的一个非常方便的 RESTful HTTP 客户端,可以发送各种 HTTP 请求。
首先,我们需要在 Maven 或 Gradle 中引入 RestTemplate 的依赖:
<!-- Maven -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
// Gradle
implementation 'org.springframework.boot:spring-boot-starter-web'
接下来,我们可以在 Java 代码中创建 RestTemplate 对象:
RestTemplate restTemplate = new RestTemplate();
现在我们可以使用 RestTemplate 对象发送 GET 请求了。以下是一个简单的例子,演示如何发送 GET 请求并解析响应:
// 定义请求 URL 和参数
String url = "http://example.com/api/users";
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url)
.queryParam("page", "1")
.queryParam("size", "10");
// 发送 GET 请求并解析响应
UserListResponse response = restTemplate.getForObject(builder.toUriString(), UserListResponse.class);
// 打印响应信息
System.out.println("Total users: " + response.getTotal());
System.out.println("Users: " + Arrays.toString(response.getUsers()));
在上面的例子中,我们定义了一个请求的 URL,并使用 UriComponentsBuilder 构建了 URL 和参数。然后,我们使用 RestTemplate 的 getForObject() 方法发送 GET 请求,并把响应解析成一个 UserListResponse 对象。最后,我们打印了响应中的信息。
如果需要添加请求头和参数,可以使用 RestTemplate 的 exchange() 方法:
HttpHeaders headers = new HttpHeaders();
headers.add("Authorization", "Bearer my-token");
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://example.com/api/users");
builder.queryParam("page", "1");
builder.queryParam("size", "10");
HttpEntity<?> entity = new HttpEntity<>(headers);
ResponseEntity<UserListResponse> response = restTemplate.exchange(
builder.toUriString(),
HttpMethod.GET,
entity,
UserListResponse.class);
System.out.println("Total users: " + response.getBody().getTotal());
System.out.println("Users: " + Arrays.toString(response.getBody().getUsers()));
在上面的例子中,我们定义了一个 HttpHeaders 对象,用于添加请求头,然后把它传递给了 HttpEntity。在发送 GET 请求时,我们使用了 exchange() 方法,并指定了请求头和参数。最后,我们打印了响应中的信息。
通过 RestTemplate 发送 GET 请求非常简单,只需要创建一个 RestTemplate 对象并调用它的方法即可。如果需要添加请求头和参数,可以使用 exchange() 方法。