public static String sendMultipart(final String httpUrl, final Map<String, String> params,
final Map<String, File> fileParams) throws Exception {
CloseableHttpClient httpClient = null;
CloseableHttpResponse response = null;
try {
httpClient = HttpClients.createDefault();
RequestBuilder requestBuilder = RequestBuilder.post().setUri(new URI(httpUrl))
.setConfig(Config.getRequestConfig());
MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create();
// params
if (params != null && !params.isEmpty()) {
for (Map.Entry<String, String> entry : params.entrySet()) {
multipartEntityBuilder.addPart(entry.getKey(),
new StringBody(entry.getValue(), ContentType.MULTIPART_FORM_DATA.withCharset("UTF-8")));
}
}
// inputStreams
if (fileParams != null) {
for (Map.Entry<String, File> entry : fileParams.entrySet()) {
if (entry.getValue() != null) {
multipartEntityBuilder.addPart(entry.getKey(), new FileBody(entry.getValue()));
}
}
}
requestBuilder.setEntity(multipartEntityBuilder.build());
HttpUriRequest httpUriRequest = requestBuilder.build();
response = httpClient.execute(httpUriRequest);
return EntityUtils.toString(response.getEntity(), Consts.UTF_8);
} finally {
if (response != null) {
response.close();
}
if (httpClient != null) {
httpClient.close();
}
}
}
说明:该方法支持文件和图片提交
温馨提醒:不要转载用心看懂了就行。