HttpClient4.5 上传文件失败

发布于 2021-11-27 10:38:33 字数 1389 浏览 925 评论 3

@JFinal 你好,想跟你请教个问题:

我使用httpclient上传附件的时候报Separation boundary was not specified

下面是方法方法的代码

public String sendHttpClientUpload(String path, String fileName, File file, String encode) throws ClientProtocolException, IOException {
        encode = StringUtils.isEmpty(encode) ? "utf-8" : encode;

        // 实现将请求 的参数封装封装到HttpEntity中。
        EntityBuilder entityBuilder = EntityBuilder.create();
        entityBuilder.setContentEncoding(encode);
        entityBuilder.setContentType(ContentType.MULTIPART_FORM_DATA);
//        entityBuilder.setParameters(new BasicNameValuePair("fileName", fileName));
        entityBuilder.setFile(file);

        // 使用HttpPost请求方式
        HttpPost httpPost = new HttpPost(path);
        // 设置请求参数到Form中。
        httpPost.setEntity(entityBuilder.build());

        // 实例化一个默认的Http客户端
        CloseableHttpClient httpclient = HttpClients.createDefault();
        // 执行请求,并获得响应数据
        CloseableHttpResponse response = httpclient.execute(httpPost);
        HttpEntity entity = response.getEntity();
        if (entity != null) {
            return EntityUtils.toString(entity, encode);
        }

        return null;
    }



如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

爱的故事 2021-12-03 05:20:44

@袁小猴  我把现在的代码贴给你。 具体怎么解决的忘了。时间比较长了……

List<NameValuePair> list = new ArrayList<NameValuePair>();
        if (map != null && !map.isEmpty()) {
            for (Map.Entry<String, String> entry : map.entrySet()) {
                // 解析Map传递的参数,使用一个键值对对象BasicNameValuePair保存。
                list.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
            }
        }

        // 实现将请求 的参数封装封装到HttpEntity中。
//        EntityBuilder entityBuilder = EntityBuilder.create();
//        entityBuilder.setContentEncoding(encode);
//        entityBuilder.setParameters(list);

        // 使用HttpPost请求方式
        HttpPost httpPost = new HttpPost(path);
        // 设置请求参数到Form中。
        httpPost.setEntity(new UrlEncodedFormEntity(list, Consts.UTF_8));

        // 实例化一个默认的Http客户端
        CloseableHttpClient httpclient = HttpClients.createDefault();
        // 执行请求,并获得响应数据
        CloseableHttpResponse response = httpclient.execute(httpPost);

醉酒的小男人 2021-12-02 22:37:06

楼主,后来这个问题怎么解决的呢?

小瓶盖 2021-11-29 21:09:31

   
Separation boundary was not specified 错误,证明上传的数据格式不正确, jfinal 端无法解析出文件

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文