以下是使用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了。

Java RestTemplate 接口调用 - 获取资产列表并封装到List中

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

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