第2世界
发布于 2024-02-01 / 10 阅读 / 0 评论 / 0 点赞

java发送http请求

使用 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)


评论