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