Java 代码示例:使用 RestTemplate 获取 API 数据并解析
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<>();
}
}
代码说明:
- 该示例使用
RestTemplate类发送 HTTP GET 请求到指定的 API 地址BASE_URL。 ParameterizedTypeReference类用于指定响应结果的类型,方便RestTemplate自动解析 JSON 数据。- 使用
HttpHeaders对象设置 HTTP 请求头,包括基本认证信息。 HttpEntity对象封装了请求头和请求体,用于发送 HTTP 请求。ResponseEntity对象包含了 HTTP 响应信息,包括响应状态码、响应头和响应体。- 如何打印对象的属性值:
- 在输出时,默认会调用对象的
toString()方法,而该方法返回的是对象的地址。 - 为了打印对象的属性值,可以通过调用对象的
getter方法来获取属性值并输出。 - 例如,假设
pod类中有一个名为name的属性,可以使用response.getBody().getData().getName()来获取并打印该属性的值。
- 在输出时,默认会调用对象的
注意:
- 以上示例代码只是一个简单的演示,你需要根据实际情况进行修改和扩展。
- 确保你已经引入了必要的依赖库,例如
spring-web和jackson-databind。 - 了解 API 的文档,以便正确解析和处理响应结果。
- 在实际应用中,建议使用日志记录工具记录请求和响应信息,方便调试和排查问题。
原文地址: https://www.cveoy.top/t/topic/oy3T 著作权归作者所有。请勿转载和采集!