传输from-data数据格式的内容
postman里面的格式如下
接下来,便将上面的内容转换为代码
第一步:将File转为MultipartFile格式
首先,我们只能将File转为改格式才能进行网络传输,转换方式请看这篇博客:https://blog.csdn.net/yyuggjggg/article/details/127454421
不看上面那篇博客也可以,网上搜索,有很多方法
第二步:按格式传入map
//FileToMultipartFile:这个是我自己写的File转为MultipartFile格式的方法
MultipartFile file = ParserUtils.FileToMultipartFile(fileStr);
MultiValueMap<String, Object> form = new LinkedMultiValueMap<>();
form.add("file", file.getResource());
form.add("name", "ceshi");
form.add("to", "you");
第三步:发送请求进传输
public void doPost(String url, MultiValueMap<String, Object> form) throws Exception {
//设置请求头
HttpHeaders headers = new HttpHeaders();
MediaType type = MediaType.parseMediaType("multipart/form-data");
//设置传输方式为multipart/form-data
headers.setContentType(type);
org.springframework.http.HttpEntity<MultiValueMap<String, Object>> httpEntity = new org.springframework.http.HttpEntity<>(form, headers);
RestTemplate restTemplate = new RestTemplate();
//用HttpEntity封装整个请求报文
restTemplate.postForObject(url, httpEntity, String.class);
}
如此,便可以实现from-data格式的数据进行传输了
取出传入数据为from-data格式的值
取出字符串
@PostMapping("/test1")
public void test1(HttpServletRequest request) throws Exception{
//取出form-data中name的值
String a=request.getParameter("name");
//取出form-data中to的值
String b=request.getParameter("to");
}
取出二进制文件
这个可以是图片,也可以是文件等
@PostMapping("/test2")
public void test2(HttpServletRequest request) throws Exception{
//取出form-data中的二进制字段
MultipartHttpServletRequest multipartRequest=(MultipartHttpServletRequest) request;
//file是form-data中二进制字段对应的name
MultipartFile accessory = multipartRequest.getFile("file");