溫馨提示×

springboot怎么調(diào)用第三方接口獲取文件流

小億
376
2024-01-22 14:44:17
欄目: 編程語言

要調(diào)用第三方接口并獲取文件流,可以使用以下步驟:

  1. 導(dǎo)入相關(guān)的依賴:添加 RestTemplateHttpComponentsClientHttpRequestFactory 依賴。
<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>
  1. 創(chuàng)建 RestTemplate 實例,并配置 HttpComponentsClientHttpRequestFactory。
@Configuration
public class RestTemplateConfig {
    @Bean
    public RestTemplate restTemplate() {
        CloseableHttpClient httpClient = HttpClients.createDefault();
        HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient);
        return new RestTemplate(factory);
    }
}
  1. 在需要調(diào)用第三方接口的地方注入 RestTemplate
@Autowired
private RestTemplate restTemplate;
  1. 使用 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)整。

0