首页 > 编程语言 >java代码上传文件,接口consumes = "multipart/*",headers = "content-type=multipart/form-data&quo

java代码上传文件,接口consumes = "multipart/*",headers = "content-type=multipart/form-data&quo

时间:2023-02-24 18:14:25浏览次数:44  
标签:java form builder printStackTrace multipart catch null response httpClient

public static String doPost(String url,String fileName, File file) {
CloseableHttpClient httpClient = null;
CloseableHttpResponse response = null;
String result = "";
try {
// 通过址默认配置创建一个httpClient实例
httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
if (file != null) {
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setCharset(java.nio.charset.Charset.forName("UTF-8"));
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
// 文件流
builder.addBinaryBody(fileName, new FileInputStream(file), ContentType.MULTIPART_FORM_DATA, file.getName());
HttpEntity entity = builder.build();
httpPost.setEntity(entity);
}
// 设置配置请求参数
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000)// 连接主机服务超时时间
.setConnectionRequestTimeout(35000)// 请求超时时间
.setSocketTimeout(60000)// 数据读取超时时间
.build();
// 为httpGet实例设置配置
httpPost.setConfig(requestConfig);
// 执行get请求得到返回对象
response = httpClient.execute(httpPost);
// 通过返回对象获取返回数据
HttpEntity entity = response.getEntity();
// 通过EntityUtils中的toString方法将结果转换为字符串
result = EntityUtils.toString(entity);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭资源
if (null != response) {
try {
response.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != httpClient) {
try {
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return result;
}

标签:java,form,builder,printStackTrace,multipart,catch,null,response,httpClient
From: https://www.cnblogs.com/zhangandong/p/17152674.html

相关文章

  • java代码转发文件流,前端下载文件流
    后端文件流转发代码publicstaticvoiddoGetFile(HttpServletResponsehttpResponse,Stringurl){CloseableHttpClienthttpClient=null;CloseableH......
  • java 反射
    总结一句话就是:在程序运行中根据业务需要由jvm动态获取Class对象来创建对象、执行方法等操作。是动态和灵活的而不是事先代码写死获取Class三种方法:类.class;对象.g......
  • java int 引用传递
    integer是final,不可变的,所以也无法实现引用传递的功能。解决方案int[]做一个包装类org.apache.commons.lang.mutable.MutableIntjava.util.concurrent.atomic.Atomi......
  • Java的特性和优点,三大版本,JDK,JRE,JVM
    Java的特性和优点面对对象跨平台性简单高性能分布式动态性多线程安全的健壮的Java的三大版本JavaSE:标准版(桌面程序,控制台开发...)JavaME:......
  • WinForm中DataGridView的单元格的显示格式DefaultCellStyle.Format自定义DefaultCellS
    第一步:继承ICustomFormatter,IFormatProvider接口,并实现实例代码:ICustomFormatter,IFormatProvider接口实现类publicclassKmFormatProvider:ICustomFormatte......
  • Java判断字符串是否为数字(正负、小数)
    BooleanstrResult=number.matches("-?[0-9]+.*[0-9]*");if(strResult){ //将字符串转换成Double类型 doublen=Double.valueOf(number); //四舍五入保留两位 Bi......
  • Java力扣
    目录JZ6从尾到头打印链表JZ24反转链表JZ25合并两个排序的链表JZ52两个链表的第一个公共结点JZ23链表中环的入口结点JZ6从尾到头打印链表JZ24反转链表JZ25合并......
  • Java多线程学习路线
    在学习之前,需要对线程的概念和多线程编程的常见问题有基本理解。1线程Thread(重要)Runnable(重要)Callable和FutureTask(重要)CompletableFuture2线程池ThreadPool......
  • JAVA文件夹上传解决方案
    ​ javaweb上传文件上传文件的jsp中的部分上传文件同样可以使用form表单向后端发请求,也可以使用ajax向后端发请求    1. 通过form表单向后端发送请求    ......
  • 解析器Jackson_json转Java对象与案例_校验用户名是否存在
    JSON_解析器Jackson_json转Java对象@Testpublicvoidtest5()throwsException{//1.初始化JSON字符串Stringjson="{\"gender\":\"男\",\"......