Java RestTemplate 接口调用 - 获取资产列表并封装到List中
以下是使用Java代码示例,演示如何使用RestTemplate库通过Basic Auth认证调用接口获取资产信息,并将其封装到List中。
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;
import java.util.ArrayList;
import java.util.List;
public class AssetApiClient {
private final String baseUrl = 'http://100.71.8.94:32600/cuchulainn/openapi/asset';
private final String username = 'admin';
private final String password = 'admin5';
private RestTemplate restTemplate;
public AssetApiClient(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
public List<Asset> getAllAssets() {
HttpHeaders headers = new HttpHeaders();
headers.setBasicAuth(username, password);
HttpEntity<String> requestEntity = new HttpEntity<>(headers);
ResponseEntity<Asset[]> responseEntity = restTemplate.getForEntity(baseUrl, Asset[].class, requestEntity);
if (responseEntity.getStatusCode() == HttpStatus.OK) {
Asset[] assets = responseEntity.getBody();
List<Asset> assetList = new ArrayList<>(assets.length);
for (Asset asset : assets) {
assetList.add(asset);
}
return assetList;
} else {
throw new RuntimeException('Failed to get assets, status code: ' + responseEntity.getStatusCodeValue());
}
}
}
其中Asset是你自己定义的实体类。使用时需要实例化一个RestTemplate对象,并将其传入AssetApiClient的构造函数中,例如:
RestTemplate restTemplate = new RestTemplate();
AssetApiClient assetApiClient = new AssetApiClient(restTemplate);
List<Asset> assetList = assetApiClient.getAllAssets();
这样就可以得到一个包含所有Asset的List了。
原文地址: https://www.cveoy.top/t/topic/owym 著作权归作者所有。请勿转载和采集!