restTemplate 發送 MultiValueMap 中文亂碼 (FormHttpMessageConverter 編碼方式)


 =====================================

// 設置 restTemplate FormHttpMessageConverter 編碼方式


@Configuration
public class RestTemplateConfig {


@Bean
RestTemplate restTemplate(){

SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
requestFactory.setConnectTimeout(60000);
requestFactory.setReadTimeout(60000);


RestTemplate restTemplate = new RestTemplate(requestFactory);

// 設置 restTemplate FormHttpMessageConverter 編碼方式

List<HttpMessageConverter<?>> list = restTemplate.getMessageConverters();
for (HttpMessageConverter<?> httpMessageConverter : list) {
if(httpMessageConverter instanceof FormHttpMessageConverter) {
((FormHttpMessageConverter) httpMessageConverter).setCharset(Charset.forName(StandardCharsets.UTF_8.toString()));
}
}
restTemplate.setMessageConverters(list);

return restTemplate;
}

}

 

==============================

@Service

public class FileService implements IFileService{

@Autowired
private RestTemplate restTemplate;

@Override
public void uploadFile(MultipartFile file) throws IOException {

ByteArrayResource byteArrayResource = new ByteArrayResource(file.getBytes()) {
@Override
public String getFilename() {
return file.getOriginalFilename();
};
};

MultiValueMap<String, ByteArrayResource> map = new LinkedMultiValueMap<String, ByteArrayResource>();
map.add("file", byteArrayResource);

restTemplate.postForEntity("http://localhost:8066/file/upload", map, String.class);

}
}

 

 

 

 

 

https://blog.csdn.net/w522301629/article/details/81128630

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM