简介:
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅。
HttpUtil是应对简单场景下Http请求的工具类封装,此工具封装了HttpRequest对象常用操作,可以保证在一个方法之内完成Http请求。
此模块基于JDK的HttpUrlConnection封装完成,完整支持https、代理和文件上传。
1.multipart图片上传是以from-data形式进行传参,header中会定义Content-Type = multipart/form-data
try {
Map<String, Object> params = new HashMap<>();
params.put("file", createIs(file));
params.put("userId", customUserDetails.getUsername());
log.info("hutool上传图片请求参数 url:{}", bppConfig.getUploadUrl());
String body = HttpRequest.post(bppConfig.getUploadUrl())
.header("appId", bppConfig.getAppId())
.header("authKey", authKey)
.header(Header.CONTENT_TYPE.getValue(), ContentType.MULTIPART.getValue())
.form(params)
.execute().body();
JSONObject jsonObject = JSON.parseObject(body);
bppImageId = jsonObject.getString("id");
log.info("bpp上传图片请求body:{}", body);
} catch (Exception e) {
throw new CommonException("bpp上传图片请求失败:{}", e.getMessage());
}
- 我们需要将MultipartFile转换成InputStreamResource输入流
private InputStreamResource createIs(MultipartFile file) {
InputStreamResource isr = null;
try {
isr = new InputStreamResource(file.getInputStream(), file.getOriginalFilename());
} catch (IOException e) {
log.info("文件流转换异常:{}", e);
}
return isr;
}