java发送post携带MultipartFile⽂件参数
内部发送POST请求携带⽂件类型的参数,参考⼤佬的代码,现在不到出处了,我写下来⽅便⼤家查询以及今后使⽤,侵删。
public class HttpFileUtil {
/**
* 以post⽅式调⽤第三⽅接⼝,以form-data 形式发送 MultipartFile ⽂件数据
* @param url  post请求url
* @param fileParamName ⽂件参数名称
* @param multipartFile  ⽂件
*/
public static String doPostFormData(String url, String fileParamName, MultipartFile multipartFile,Map<String, String> paramMap){ // 创建Http实例
CloseableHttpClient httpClient = ateDefault();
// 创建HttpPost实例
HttpPost httpPost =new HttpPost(url);
// 请求参数配置
RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(60000).setConnectTimeout(60000) .setConnectionRequestTimeout(10000).build();
httpPost.setConfig(requestConfig);
try{
MultipartEntityBuilder builder = ate();
builder.setCharset(StandardCharsets.UTF_8);
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
String fileName = OriginalFilename();
// ⽂件流
builder.addBinaryBody(fileParamName, InputStream(), ContentType.MULTIPART_FORM_DATA, fileName);
//表单中其他参数,如果没有其他参数可以注释该部分
for(Map.Entry<String, String> entry: Set()){
builder.Key(),new Value(), ate("text/plain", Consts.UTF_8)));
}
HttpEntity entity = builder.build();
httpPost.setEntity(entity);
// 执⾏提交
HttpResponse response = ute(httpPost);
StatusLine().getStatusCode()== HttpStatus.SC_OK){
// 返回
String res = Entity(), StandardCharsets.UTF_8);
return res;
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(httpClient !=null){
try{
httpClient.close();
}catch(IOException e){
param namee.printStackTrace();
}
}
}
return null;
}
}
接⼝
/**
* 接收图⽚
*/
@PostMapping("/acceptImg")
public String acceptImg(@RequestParam("img") MultipartFile file)throws Exception {
System.out.println("打印:"+file);
return service.imgSave(file);
}
调⽤
HttpFileUtil.doPostFormData(url,"img",mfile);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。