要調(diào)用第三方接口并獲取文件流,可以使用以下步驟:
RestTemplate
和 HttpComponentsClientHttpRequestFactory
依賴。<dependencies>
<!-- RestTemplate -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- HttpClient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
</dependencies>
RestTemplate
實例,并配置 HttpComponentsClientHttpRequestFactory
。@Configuration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate() {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient);
return new RestTemplate(factory);
}
}
RestTemplate
。@Autowired
private RestTemplate restTemplate;
restTemplate
發(fā)送 HTTP 請求,并獲取文件流。public InputStream getRemoteFile(String url) {
ResponseEntity<Resource> response = restTemplate.getForEntity(url, Resource.class);
Resource resource = response.getBody();
try {
return resource.getInputStream();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
上述代碼中,url
是第三方接口的 URL,將其作為參數(shù)傳遞給 getRemoteFile
方法。該方法使用 restTemplate.getForEntity
發(fā)送 GET 請求,并將響應(yīng)的 Resource
對象中的文件流返回。
注意:這僅適用于返回文件流的接口,如果返回的是文件的字節(jié)數(shù)組或字符串等形式,可以根據(jù)實際情況進行調(diào)整。