Httpclient使用post调用文件上传接口报错500

Httpclient使用post调用文件上传接口报错500


前言

这两天有小粉丝问我:“Httpclient使用post调用文件上传接口报错500,怎么办呀。”

莫慌来我这就告诉你,"孤单寂寞冷"等你来"撩"我。


正题

打断点发现了错误如下:(是在httpclient写好后提交请求时哦,response除报错。)

HttpResponseProxy{HTTP/1.1 500 Internal Server Error [Server: Apache-Coyote/1.1, Content-Type: text/html;charset=utf-8, Content-Language: en, Content-Length: 7303, Date: Mon, 16 Dec 2019 08:07:11 GMT, Connection: close] ResponseEntityProxy{[Content-Type: text/html;charset=utf-8,Content-Length: 7303,Chunked: false]}}

在这里插入图片描述

参数,二进制文件:

在这里插入图片描述

解决办法:

在这里插入图片描述

查找资料所言哈哈,画蛇添足了哈哈哈哈哈哈哈
在这里插入图片描述

部分代码如下:

    HttpPost httpPost = new HttpPost(requestUrl);
    // 构建MultipartEntityBuilder参数
    MultipartEntityBuilder builder = MultipartEntityBuilder.create();
    builder.setCharset(java.nio.charset.Charset.forName("UTF-8"));
    builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);//加上此行代码解决返回中文乱码问题
    builder.addBinaryBody("file", file[0].getInputStream(),ContentType.MULTIPART_FORM_DATA,filename);// 文件流
    //builder.addBinaryBody("file", file[i].getInputStream());// 文件流
    builder.addTextBody("path", path);
    builder.addTextBody("filename", filename);
    //TODO不上传图片的话需要设置请求头,如果上传图片的话,默认的就是from-data格式
    //builder.setContentType(ContentType.create("multipart/form-data; encoding=utf-8"));
    //httpPost.setHeader("Content-Type", "multipart/form-data; encoding=utf-8");
     
    HttpEntity entity = builder.build();
    httpPost.setEntity(entity);
    HttpClient httpClient = HttpClientBuilder.create().build();
    // 发送请求
    HttpResponse response = httpClient.execute(httpPost);
    HttpEntity responseEntity = response.getEntity();
    String entityStr = EntityUtils.toString(responseEntity);

快去动手试试吧!


最后

  • 更多参考精彩博文请看这里:陈永佳的博客

  • 喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈永佳

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值