使用resttemplate处理任意get请求
时间: 2023-12-13 16:23:20 浏览: 136
使用RestTemplate发送GET请求的步骤如下:
1. 创建 RestTemplate 实例。
```java
RestTemplate restTemplate = new RestTemplate();
```
2. 使用 `getForObject()` 或 `getForEntity()` 方法发送请求并获取响应。
```java
String url = "http://example.com/api/data";
String response = restTemplate.getForObject(url, String.class);
// 或者
ResponseEntity<String> responseEntity = restTemplate.getForEntity(url, String.class);
String response = responseEntity.getBody();
```
其中,`getForObject()` 方法直接返回响应体,而 `getForEntity()` 方法返回一个 `ResponseEntity` 对象,包含了响应头、响应状态码等信息。
3. 可以在请求中传递参数,例如:
```java
String url = "http://example.com/api/data?param1=value1¶m2=value2";
String response = restTemplate.getForObject(url, String.class);
```
也可以使用 `UriComponentsBuilder` 来构建带参数的 URL,例如:
```java
UriComponents uriComponents = UriComponentsBuilder
.fromUriString("http://example.com/api/data")
.queryParam("param1", "value1")
.queryParam("param2", "value2")
.build();
String url = uriComponents.toUriString();
String response = restTemplate.getForObject(url, String.class);
```
4. 如果需要设置请求头,可以使用 `HttpHeaders` 对象,例如:
```java
HttpHeaders headers = new HttpHeaders();
headers.set("Authorization", "Bearer " + token);
headers.set("User-Agent", "Mozilla/5.0");
HttpEntity<?> entity = new HttpEntity<>(headers);
String url = "http://example.com/api/data";
String response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class).getBody();
```
这里使用 `exchange()` 方法发送请求,并将请求头和请求体封装到 `HttpEntity` 对象中。
5. 最后别忘了处理异常情况,例如:
```java
try {
String url = "http://example.com/api/data";
String response = restTemplate.getForObject(url, String.class);
} catch (RestClientException e) {
// 处理异常
}
```
RestClientException 是 RestTemplate 发送请求时可能抛出的异常,例如网络异常、HTTP 错误等。
阅读全文