【Hutool实现上传图片发送http请求】

简介:
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());
}
  1. 我们需要将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;
}
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值