public static String UploadFileByHttpClient(String url,Map<String,Object> params,String fileName) {
String result = "";
CloseableHttpClient httpClient = createSSLClientDefault();;
CloseableHttpResponse response = null;
InputStream content = null;
BufferedReader in = null;
try {
HttpPost httpPost = new HttpPost(url);
//HttpMultipartMode.RFC6532参数的设定是为避免文件名为中文时乱码
MultipartEntityBuilder builder = MultipartEntityBuilder.create().setMode(HttpMultipartMode.RFC6532);
for (String param : params.keySet()){
Object value = params.get(param);
if(value instanceof File){
builder.addBinaryBody(param, (File) value, ContentType.MULTIPART_FORM_DATA,fileName);
} else if(value instanceof Integer){
builder.addTextBody(param, value +"");
} else {
builder.addTextBody(param, (String) value);
}
}
HttpEntity entity = builder.build();
httpPost.setEntity(entity);
response = httpClient.execute(httpPost);// 执行提交
HttpEntity responseEntity = response.getEntity();//接收调用外部接口返回的内容
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
// 返回的内容都在content中
content = responseEntity.getContent();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(content));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
}
}catch(Exception e) {
log.error("上传文件失败:",e);
return result;
}finally {//处理结束后关闭httpclient的链接
try {
httpClient.close();
content .close();
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
}
10-13
860
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交