/**
*@param url 请求地址
*@param json提交参数
*@param code 编码
*@param file 文件对象
*/
public String postFormdata(String url, JSONObject json, String code, File file) {
String res = null;
CloseableHttpResponse response = null;
try {
HttpPost httpPost = new HttpPost(url);
String boundary ="--------------4585696313564699";
httpPost.setHeader("Content-Type","multipart/form-data; boundary="+boundary);
//创建 MultipartEntityBuilder,以此来构建我们的参数
MultipartEntityBuilder EntityBuilder = MultipartEntityBuilder.create();
//设置字符编码,防止乱码
ContentType contentType=ContentType.create("text/plain",Charset.forName(code));
//遍历json参数
for(String str:json.keySet()){
EntityBuilder.addPart(str, new StringBody(json.get(str).toString(),contentType));
}
EntityBuilder.addPart("file",new FileBody(file));
//模拟浏览器
EntityBuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
//boundary
EntityBuilder.setBoundary(boundary);
httpPost.setEntity(EntityBuilder.build());
response = httpclient.execute(httpPost);
HttpEntity entity2 = response.getEntity();
res = EntityUtils.toString(entity2, code);
logger.info(res);
EntityUtils.consume(entity2);
} catch (Exception e) {
logger.error(url, e);
} finally {
if (response != null) {
try {
response.close();
} catch (IOException e) {
}
}
}
return res;
}