欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

java httpclient post 上传文件_httpclient通过post multipart/form-data 上传文件

发布时间:2023/12/19 编程问答 35 豆豆
生活随笔 收集整理的这篇文章主要介绍了 java httpclient post 上传文件_httpclient通过post multipart/form-data 上传文件 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

public static String httpClientUploadFile(String url, File file) {

CloseableHttpClient httpClient = HttpClients.createDefault();

String result = "";

//每个post参数之间的分隔。随意设定,只要不会和其他的字符串重复即可。

String boundary ="--------------4585696313564699";

try {

//文件名

String fileName = file.getName();

HttpPost httpPost = new HttpPost(url);

//设置请求头

httpPost.setHeader("Content-Type","multipart/form-data; boundary="+boundary);

//HttpEntity builder

MultipartEntityBuilder builder = MultipartEntityBuilder.create();

//字符编码

builder.setCharset(Charset.forName("UTF-8"));

//模拟浏览器

builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);

//boundary

builder.setBoundary(boundary);

//multipart/form-data

builder.addPart("multipartFile",new FileBody(file));

// binary

// builder.addBinaryBody("name=\"multipartFile\"; filename=\"test.docx\"", new FileInputStream(file), ContentType.MULTIPART_FORM_DATA, fileName);// 文件流

//其他参数

builder.addTextBody("filename", fileName, ContentType.create("text/plain", Consts.UTF_8));

//HttpEntity

HttpEntity entity = builder.build();

httpPost.setEntity(entity);

// 执行提交

HttpResponse response = httpClient.execute(httpPost);

//响应

HttpEntity responseEntity = response.getEntity();

if (responseEntity != null) {

// 将响应内容转换为字符串

result = EntityUtils.toString(responseEntity, Charset.forName("UTF-8"));

}

} catch (IOException e) {

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

httpClient.close();

} catch (IOException e) {

e.printStackTrace();

}

}

System.err.println("result"+result);

return result;

}

//main 方法

public static void main(String[] args) {

httpClientUploadFile("http://127.0.0.1:8080/upload",new File("d:/test/test.docx"));

}

总结

以上是生活随笔为你收集整理的java httpclient post 上传文件_httpclient通过post multipart/form-data 上传文件的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。