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远程调用,发送文件
最新推荐文章于 2024-02-18 23:13:14 发布