gpt4 book ai didi

java - 如何使用rest模板下载图片?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:05:49 25 4
gpt4 key购买 nike

我有以下代码:

restTemplate.getForObject("http://img.championat.com/news/big/l/c/ujejn-runi_1439911080563855663.jpg", File.class);

我特别拍了一张不需要授权的图片,绝对可以让所有人看到。

当执行以下代码时,我看到以下堆栈跟踪:

org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [class java.io.File] and content type [image/jpeg]
at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:108)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:559)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:512)
at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:243)
at com.terminal.controller.CreateCompanyController.handleFileUpload(CreateCompanyController.java:615)

我做错了什么?

最佳答案

Image 是一个字节数组,所以你需要使用 byte[].class 对象作为 RestTemplate.getForObject 的第二个参数:

String url = "http://img.championat.com/news/big/l/c/ujejn-runi_1439911080563855663.jpg";
byte[] imageBytes = restTemplate.getForObject(url, byte[].class);
Files.write(Paths.get("image.jpg"), imageBytes);

要使其正常工作,您需要在应用程序配置中配置 ByteArrayHttpMessageConverter:

@Bean
public RestTemplate restTemplate(List<HttpMessageConverter<?>> messageConverters) {
return new RestTemplate(messageConverters);
}

@Bean
public ByteArrayHttpMessageConverter byteArrayHttpMessageConverter() {
return new ByteArrayHttpMessageConverter();
}

我已经在 Spring Boot 项目中对此进行了测试,图像按预期保存到文件中。

关于java - 如何使用rest模板下载图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32080207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com