restTemplate 发送 MultiValueMap 中文乱码 (FormHttpMessageConverter 编码方式)

JAVA学习网 2019-04-04 17:58:05

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

// 设置 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

 

阅读(2686) 评论(0)