Java 代码示例:使用 RestTemplate 获取 API 数据并解析

public class text {
    private static final String BASE_URL = 'http://100.71.8.94:32600/cuchulainn/openapi/asset/Pod';
    private static final String USERNAME = 'admin';
    private static final String PASSWORD = 'admin5';

    public static void main(String[] args) {
        ParameterizedTypeReference<cmdbResponse<pod>> typeReference = new ParameterizedTypeReference<cmdbResponse<pod>>() {};
        RestTemplate restTemplate = new RestTemplate();
        HttpHeaders headers = new HttpHeaders();
        headers.setBasicAuth(USERNAME, PASSWORD);
        HttpEntity<Object> entity = new HttpEntity<>(headers);
        ResponseEntity<cmdbResponse<pod>> response = restTemplate.exchange(BASE_URL, HttpMethod.GET, entity, typeReference);

        // 打印对象的属性值,而不是对象的地址
        System.out.println(response.getBody().getData().getName()); // 假设 pod 类中有一个名为 name 的属性

        // 以下代码用于演示如何解析和处理响应结果,你可以根据实际情况进行修改
//        ObjectMapper mapper = new ObjectMapper();
//        System.out.println(response.getBody().getData());
//        List<Object> pods = new ArrayList<>();
    }

}

代码说明:

  1. 该示例使用 RestTemplate 类发送 HTTP GET 请求到指定的 API 地址 BASE_URL
  2. ParameterizedTypeReference 类用于指定响应结果的类型,方便 RestTemplate 自动解析 JSON 数据。
  3. 使用 HttpHeaders 对象设置 HTTP 请求头,包括基本认证信息。
  4. HttpEntity 对象封装了请求头和请求体,用于发送 HTTP 请求。
  5. ResponseEntity 对象包含了 HTTP 响应信息,包括响应状态码、响应头和响应体。
  6. 如何打印对象的属性值:
    • 在输出时,默认会调用对象的 toString() 方法,而该方法返回的是对象的地址。
    • 为了打印对象的属性值,可以通过调用对象的 getter 方法来获取属性值并输出。
    • 例如,假设 pod 类中有一个名为 name 的属性,可以使用 response.getBody().getData().getName() 来获取并打印该属性的值。

注意:

  • 以上示例代码只是一个简单的演示,你需要根据实际情况进行修改和扩展。
  • 确保你已经引入了必要的依赖库,例如 spring-webjackson-databind
  • 了解 API 的文档,以便正确解析和处理响应结果。
  • 在实际应用中,建议使用日志记录工具记录请求和响应信息,方便调试和排查问题。
Java 代码示例:使用 RestTemplate 获取 API 数据并解析

原文地址: https://www.cveoy.top/t/topic/oy3T 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录