restTemplate 发送get请求带上header
时间: 2024-11-14 08:02:11 浏览: 22
RestTemplate 是Spring框架中用于访问RESTful服务的一个客户端工具,它允许我们发送HTTP请求并处理响应。如果你想要通过 RestTemplate 发起一个 GET 请求并带上自定义的 header,你可以按照以下步骤操作:
1. 创建 `RestTemplate` 对象实例:
```java
RestTemplate restTemplate = new RestTemplate();
```
2. 使用 `HttpHeaders` 类创建一个头信息对象,并添加你需要的键值对:
```java
HttpHeaders headers = new HttpHeaders();
headers.set("Header-Name", "HeaderValue");
```
3. 将 header 添加到 `HttpEntity` 或 `MultiValueMap` 中,这里我们通常用 `HttpEntity`:
```java
HttpEntity<String> entity = new HttpEntity<>("Your request body", headers);
```
4. 使用 `RestTemplate` 的 `getForObject` 或者 `getForEntity` 方法发起 GET 请求,将 `entity` 作为参数传递:
```java
ResponseEntity<String> response = restTemplate.getForEntity("http://example.com/api", String.class, entity);
```
5. 获取响应结果和状态码。
完整的示例代码可能如下所示:
```java
String url = "http://example.com/api";
HttpHeaders headers = new HttpHeaders();
headers.set("Authorization", "Bearer your_token"); // 示例:设置一个 token
HttpEntity<String> request = new HttpEntity<>("Your data", headers);
ResponseEntity<String> response = restTemplate.getForEntity(url, String.class, request);
// 然后可以处理response,如获取body内容或状态码
String responseBody = response.getBody();
int responseCode = response.getStatusCode().value();
```
阅读全文