java 远程接口 文件上传_java中远程http文件上传及file2multipartfile
1 public static Map executeDriverServer(String driverUrl, Map param,String multipart, String contentType,int timeout,String picPath) throwsException {2
3 String res = ""; //请求返回默认的支持json串
4
5 Map map = new HashMap();6 ContentType ctype = ContentType.create("content-disposition","UTF-8");7
8 Map map = new HashMap();9
10 HttpClientBuilder httpClientBuilder =HttpClientBuilder.create();11
12 CloseableHttpClient closeableHttpClient =httpClientBuilder.build();13
14 String res = ""; //请求返回默认的支持json串
15
16 HttpResponse httpResponse = null;17
18 try{19
20 HttpPost httpPost = newHttpPost(driverUrl);21
22 //设置请求和传输超时时间
23
24 RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(timeout).setConnectTimeout(5000).build();25
26 httpPost.setConfig(requestConfig);27
28 //BTW 4.3版本不设置超时的话,一旦服务器没有响应,等待时间N久(>24小时)。
29
30 if(httpPost!=null){31
32 if("formdata".equals(multipart)){33
34 MultipartEntityBuilder mentity =MultipartEntityBuilder.create().setMode(HttpMultipartMode.RFC6532);35
36 Set keyset =param.keySet();37
38 for(String key : keyset) {39
40 Object paramObj =Validate.notNull(param.get(key));41
42 if(paramObj instanceofMultipartFile) {43
44 mentity.addBinaryBody(key, ((MultipartFile) paramObj).getInputStream(),ctype,((MultipartFile) paramObj).getOriginalFilename());45
46 }else if(paramObj instanceofFile){47
48 mentity.addBinaryBody(key, (File)paramObj);//(key, new FileInputStream((File)paramObj),ctype,((File)paramObj).getName());
49
50 }else{51
52 mentity.addPart(key,newStringBody(paramObj.toString(),ctype));53
54 //mentity.addTextBody(key,paramObj.toString());
55
56 }57
58 logger.info("key::::"+key);59
60 logger.info("paramObj::::"+paramObj.toString());61
62 }63
64 HttpEntity entity =mentity.build();65
66 HttpUriRequest post =RequestBuilder.post().setUri(driverUrl).setEntity(entity).build();67
68 httpResponse =closeableHttpClient.execute(post);69
70 }else{71
72 HttpEntity entity =convertParam(param, contentType);73
74 httpPost.setEntity(entity);75
76 httpResponse =closeableHttpClient.execute(httpPost);77
78 }79
80 if(httpResponse == null) {81
82 throw new Exception("无返回结果");83
84 }85
86 //获取返回的状态码
87
88 int status =httpResponse.getStatusLine().getStatusCode();89
90 logger.info("Post请求URL="+driverUrl+",请求的参数="+param.toString()+",请求的格式"+contentType+",状态="+status);91
92 if(status ==HttpStatus.SC_OK){93
94 HttpEntity entity2 =httpResponse.getEntity();95
96 InputStream ins =entity2.getContent();97
98 res =toString(ins);99
100 ins.close();101
102 }else{103
104 InputStream fis =httpResponse.getEntity().getContent();105
106 Scanner sc = newScanner(fis);107
108 logger.info("Scanner:::::"+sc.next());109
110 logger.error("Post请求URL="+driverUrl+",请求的参数="+param.toString()+",请求的格式"+contentType+",错误Code:"+status);111
112 }113
114 map.put("code", String.valueOf(status));115
116 map.put("result", res);117
118 logger.info("执行Post方法请求返回的结果 = " +res);119
120 }121
122 } catch(ClientProtocolException e) {123
124 map.put("code", HttpClientUtil.CLIENT_PROTOCOL_EXCEPTION_STATUS);125
126 map.put("result", e.getMessage());127
128 } catch(UnsupportedEncodingException e) {129
130 map.put("code", HttpClientUtil.UNSUPPORTED_ENCODING_EXCEPTION_STATUS);131
132 map.put("result", e.getMessage());133
134 } catch(IOException e) {135
136 map.put("code", HttpClientUtil.IO_EXCEPTION_STATUS);137
138 map.put("result", e.getMessage());139
140 } finally{141
142 try{143
144 closeableHttpClient.close();145
146 } catch(IOException e) {147
148 logger.error("调用httpClient出错", e);149
150 throw new Exception("调用httpClient出错", e);151
152 }153
154 }155
156
157
158 private static String toString(InputStream in) throwsIOException{159
160 ByteArrayOutputStream os = newByteArrayOutputStream();161
162 byte[] b = new byte[1024];163
164 intlen;165
166 while((len = in.read(b)) != -1) {167
168 os.write(b, 0, len);169
170 }171
172 return os.toString("UTF-8");173
174 }175 }
java 远程接口 文件上传_java中远程http文件上传及file2multipartfile相关推荐
- java如何处理csv文件上传_java处理csv文件上传示例
前言:示例只是做了一个最最基础的上传csv的示例,如果要引用到代码中去,还需要根据自己的业务自行添加一些逻辑处理. ReadCsvUtil工具类 package com.hanfengyeqiao.g ...
- java上传csv文件上传_java处理csv文件上传示例详解
前言:示例只是做了一个最最基础的上传csv的示例,如果要引用到代码中去,还需要根据自己的业务自行添加一些逻辑处理. readcsvutil工具类 package com.hanfengyeqiao.g ...
- java http 上传大文件上传_java实现大文件的上传
最近项目经理逼着让偶做树的展开,表嵌套表,可惜偶刚参加工作,水平低,这不在查资料嘛,可是不多久就传来了经理的叫嚣声,这么简单的东西,都一天了,你还没做完..................,哎真是郁闷 ...
- java上传文件限制大小_Java Web:附件上传,两种文件上传限制格式及大小方法,学习笔记文件操作【诗书画唱】...
附件上传: package com.jy.controller; import java.io.File; import java.io.FileOutputStream; import java.i ...
- java 调用 swf 文件上传_java SpringMvc 实现文件在线预览(openoffice+swftools+flexpaper)
项目需求:服务器接受的文件当下只能下载之后才能浏览内容,现需要后台能在线浏览到文件内容,避免繁琐无用文件下载操作. 通过几天网上资料搜索,目前免费的在线预览开发技术使用最多还是(openoffice+ ...
- java cropper 上传_java web 网站头像上传处理 (springmvc +bootstrap+cropper)
制作头像上传.请根据您的实际需求,修改代码,不完全正确,仅供参考! 前端页面设计使用bootstrap ,头像预览和剪裁工具使用cropper 后台使用springmvc. 现在来看前端的页面设计 前 ...
- java读取 info.plist源码_Java 解析 IPA 文件,读取 Info.plist 信息-Go语言中文社区
在做移动MDM功能的时候,就遇到了这样一个问题,当用户上传IPA文件时,我如何知道这个IPA文件的相关信息呢?IPA文件有一个很重要的文件Info.plist 就类似于Android程序的Manife ...
- java资源文件获取属性_Java读写资源文件类Properties
Java中读写资源文件最重要的类是Properties 1) 资源文件要求如下: 1.properties文件是一个文本文件 2.properties文件的语法有两种,一种是注释,一种属性配置. 注 ...
- java实现对大文件切割下载_Java实现大文件的切割与合并操作示例
Java实现大文件的切割与合并操作示例 发布时间:2020-09-27 02:25:08 来源:脚本之家 阅读:99 作者:HiBoyljw 本文实例讲述了Java实现大文件的切割与合并操作.分享给大 ...
最新文章
- checksum table 【转】
- 2018-10-15
- Scala中的下划线使用总结
- Docker环境安装
- 学习方法推荐——番茄工作法
- redis集群scan_RedisCluster的scan命令
- 基于AFD驱动的进程流量控制
- mysql navicat视图_navicat怎么创建视图
- 科学计算机js代码,利用js实现在线科学计算器代码
- 学c语言学生智商要搞么,作为一个学渣,哥来告诉你如果你智商不够该怎么办...
- 【雕爷学编程】Arduino动手做(76)---2路光耦继电器模块
- AutoSF- Searching Scoring Functions for Knowledge Graph Embedding
- aho-corasick php,更快的Aho-Corasick PHP实现
- excel查询oracle数据库,用Excel直接查询Oracle中的数据
- 为什么前端UI设计师给750PX的2倍设计稿?
- BZOJ 2565 最长双回文串 Manacher
- 八、STM32串口通信
- antd Mobile Tabs 垂直布局 后台传入数据
- R语言常见的数据类型及转换
- linux机器上crontab定时任务将日志输出到以日期命名的log文件