使用 Spring 的 RestTemplate。 RestTemplate 是 Spring 库中用于访问 REST API 的类,它基于 HttpMessageConverter 接口,可以将 Java 对象转换为请求参数或响应内容。 RestTemplate 还支持各种 HTTP 请求方法、请求头部定制、文件上传和下载等操作。
示例代码:
public class HttpTemplate {
public static String httpGet(String url) {
RestTemplate restTemplate = new RestTemplate();
String result = restTemplate.exchange(url, HttpMethod.GET, null, String.class).getBody();
return result;
}
public static String httpPost(String url, String name) {
RestTemplate restTemplate = new RestTemplate();
return restTemplate.postForEntity(url, name, String.class).getBody();
}
public static void main(String str[]) {
System.out.println(HttpTemplate.httpGet("https://www.example.com"));
System.out.println(HttpTemplate.httpPost("https://www.example.com", "ming"));
}
}
示例代码:
import org.springframework.http.*;
import org.springframework.web.client.RestTemplate;
public class RestTemplateExample {
public static void main(String[] args) {
RestTemplate restTemplate = new RestTemplate();
// 请求 URL
String url = "http://example.com/api";
// 构建请求体
User user = new User("John", 30); // 自定义 User 类
HttpEntity<User> request = new HttpEntity<>(user);
// 发送 POST 请求并获取响应
ResponseEntity<String> response = restTemplate.postForEntity(url, request, String.class);
// 获取响应结果
HttpStatus statusCode = response.getStatusCode();
HttpHeaders headers = response.getHeaders();
String body = response.getBody();
// 处理响应结果
System.out.println("Status Code: " + statusCode);
System.out.println("Response Headers: " + headers);
System.out.println("Response Body: " + body);
}
}
遇到的错误
No HttpMessageConverter for com.example.demo.controller.User
解决办法:给User类添加@Data注解(需要lombook)