HttpClient4上传图片

URI location = new URI(request.getLocationUri());
            HttpRequestBase req = null;
            String responseBody = "";

            req = new HttpPost(location);
            MultipartEntity reqEntity = new MultipartEntity();
            for (Map.Entry<String, byte[]> file : uploadFile.entrySet()) {
                reqEntity.addPart(file.getKey(),
                        new ByteArrayBody(file.getValue(), "re-signup.PNG"));
            }
            for (Map.Entry<String, Object> param : parameters.entrySet()) {
                reqEntity.addPart(param.getKey(), new StringBody((String) param.getValue()));
            }
            ((HttpPost) req).setEntity(reqEntity);
            // TODO 千万不要加这个,加了就拉稀了
//            req.setHeader(OAuth.HeaderType.CONTENT_TYPE, OAuth.ContentType.UPLOAD_FILE);

            HttpResponse response = client.execute(req);
            Header contentTypeHeader = null;
            HttpEntity entity = response.getEntity();
            if (entity != null) {
                responseBody = EntityUtils.toString(entity, CommonParameters.UTF8);
                contentTypeHeader = entity.getContentType();
            }
            String contentType = null;
            if (contentTypeHeader != null) {
                contentType = contentTypeHeader.toString();
            }

注意:千万不要加req.setHeader,根据接口需要参数类型不同,可构造不同的ContentBody;

中文乱码问题:

StringBody stringBody = new StringBody((String) param.getValue(),
                        Charset.forName(CommonParameters.UTF8));
                reqEntity.addPart(param.getKey(), stringBody);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值