public String doHttpUpload(String url, Map map, MultipartFile file) throws Exception {
String postEndpoint = httpClient + url; //+ "?" + createLinkStringByGet(map);
File testUploadFile = MultipartFileToFile.multipartFileToFile(file);
//创建一个可以关闭的连接,相当于打开了一个浏览器
CloseableHttpClient httpclient = HttpClients.createDefault();
// build httpentity object and assign the file that need to be uploaded
HttpEntity postData = MultipartEntityBuilder.create()
.addTextBody("type", map.get("type").toString(), ContentType.APPLICATION_JSON)
.addTextBody("code", map.get("code").toString(), ContentType.APPLICATION_JSON)
.addTextBody("name", map.get("name").toString(), ContentType.APPLICATION_JSON)
.addTextBody("date", map.get("date").toString(), ContentType.APPLICATION_JSON)
.addTextBody("mdtId", map.get("mdtId").toString(), ContentType.APPLICATION_JSON)
.addBinaryBody("file", testUploadFile)
.build();
// build http request and assign httpentity object to it that we build above
HttpUriRequest postRequest = RequestBuilder.post(postEndpoint).setEntity(postData).build();
try {
HttpResponse response = httpclient.execute(postRequest);
//删除转换时生成的临时文件
MultipartFileToFile.delteTempFile(testUploadFile);
// BufferedReader br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
throw new RuntimeException("Failed : HTTP error code : " + response.getStatusLine().getStatusCode());
}
HttpEntity httpEntity = response.getEntity();
//对httpclient操作的工具类
String toStringResult = EntityUtils.toString(httpEntity, StandardCharsets.UTF_8);
//确保流关闭
EntityUtils.consume(httpEntity);
return toStringResult;
} catch (Exception ex) {
ex.printStackTrace();
throw ex;
}
}
httpclient远程调用,发送文件
HTTP文件上传实现
最新推荐文章于 2025-02-20 17:18:50 发布
本文介绍了一个使用Java实现的HTTP文件上传方法。通过构建HTTP请求并附加文件内容,该方法能够将指定的文件上传到服务器。文章详细展示了如何利用Apache HttpClient库进行文件上传,并处理响应。
3031

被折叠的 条评论
为什么被折叠?



