CloseableHttpClient https上传文件与form

//上传form表单public String download(String urlStr, String filePath, String uploadTime,String batchFileName, String downloadPassword) {try {List params = new ArrayList();params.add(new BasicNameValuePair("uploadTime", uploadTime));params.add(new BasicNameValuePair("batchFileName", batchFileName));params.add(new BasicNameValuePair("downloadPassword", downloadPassword));RequestConfig config = RequestConfig.custom().setSocketTimeout(30000).setConnectTimeout(30000).setConnectionRequestTimeout(30000).build();HttpClientBuilder clientBuilder = HttpClients.custom();clientBuilder.setDefaultRequestConfig(config);KeyStore kstore = KeyStore.getInstance(SSLEntity.caType);kstore.load(new FileInputStream(SSLEntity.filePath),SSLEntity.password.toCharArray());KeyManagerFactory keyFactory = KeyManagerFactory.getInstance("SunX509");keyFactory.init(kstore, SSLEntity.password.toCharArray());TrustManager[] tm = { new MyX509TrustManager() }; SSLContext sslContext = SSLContext.getInstance("TLSv1");sslContext.init(keyFactory.getKeyManagers(), tm, null);SSLConnectionSocketFactory ssl = new SSLConnectionSocketFactory(sslContext,new String[] { "TLSv1" }, null,SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);if (ssl != null)clientBuilder.setSSLSocketFactory(ssl);CloseableHttpClient client = clientBuilder.build(); CloseableHttpResponse response = null; RequestConfig requestConfig = RequestConfig.copy(config).build(); HttpPost httpPost = new HttpPost(urlStr); if(httpPost != null) { if(params != null && params.size() > 0) httpPost.setEntity(new UrlEncodedFormEntity(params, isEmpty(null) ? "utf-8" : null)); httpPost.setConfig(requestConfig); response = client.execute(httpPost); } boolean status = response.getStatusLine().getStatusCode() == 200; String fileName = ""; if(status){ Header headers[] = response.getHeaders("Content-disposition"); String headersFileName = headers[0].getValue(); String strInfo[] = headersFileName.split("\\|"); String suffixs[] = headersFileName.replaceAll("\"", "").split("\\."); if(suffixs.length < 2) { String jsonInfo = strInfo[0].split("\\=")[1]; return URLDecoder.decode(jsonInfo, "UTF-8"); } File path = new File(filePath); if(!path.exists()) path.mkdirs(); fileName = (new StringBuilder(String.valueOf(filePath))).append(filePath.endsWith(File.separator) ? "" : File.separator).append(strInfo[1].split("\\=")[1]).toString(); HttpEntity entity = response.getEntity(); if(entity != null) { InputStream in1 = entity.getContent(); File file = new File(fileName); FileOutputStream fout1 = new FileOutputStream(file); int ret = -1; byte tmp[] = new byte[1024]; while((ret = in1.read(tmp)) != -1) fout1.write(tmp, 0, ret); fout1.flush(); fout1.close(); Result.toSuccessJson((new StringBuilder("回盘文件已经下载,地址:")).append(fileName).toString()); EntityUtils.consume(entity); } }} catch (Exception e) {e.printStackTrace();return Result.toFailedJson(e.getMessage());}return Result.toSuccessJson("批量文件下载成功");}//上传文件@SuppressWarnings("deprecation")public String send(String urlStr, File file, String downFilePwd) {String responseBody = "";try {MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create();multipartEntityBuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);FileBody fileBody = new FileBody(file, ContentType.create("multipart/form-data", "utf-8"), file.getName());multipartEntityBuilder.addPart("file", fileBody);Map params = new HashMap();params.put("downloadPassword", downFilePwd);if (params != null && !params.isEmpty()) {Set keyNames = params.keySet();String keyName;StringBody keyValue;for (Iterator iterator = keyNames.iterator(); iterator.hasNext(); multipartEntityBuilder.addPart(keyName, keyValue)) {keyName = (String) iterator.next();keyValue = new StringBody((String) params.get(keyName),ContentType.create("text/plain", "UTF-8"));}}RequestConfig config = RequestConfig.custom().setSocketTimeout(30000).setConnectTimeout(30000).setConnectionRequestTimeout(30000).build();HttpClientBuilder clientBuilder = HttpClients.custom();clientBuilder.setDefaultRequestConfig(config);KeyStore kstore = KeyStore.getInstance(SSLEntity.caType);kstore.load(new FileInputStream(SSLEntity.filePath),SSLEntity.password.toCharArray());KeyManagerFactory keyFactory = KeyManagerFactory.getInstance("SunX509");keyFactory.init(kstore, SSLEntity.password.toCharArray());TrustManager[] tm = { new MyX509TrustManager() }; SSLContext sslContext = SSLContext.getInstance("TLSv1");sslContext.init(keyFactory.getKeyManagers(), tm, null);SSLConnectionSocketFactory ssl = new SSLConnectionSocketFactory(sslContext,new String[] { "TLSv1" }, null,SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);if (ssl != null)clientBuilder.setSSLSocketFactory(ssl);CloseableHttpClient client = clientBuilder.build();CloseableHttpResponse response = null;RequestConfig requestConfig = RequestConfig.copy(config).build();HttpPost httpPost = new HttpPost(urlStr);if (httpPost != null) {if (multipartEntityBuilder != null)httpPost.setEntity(multipartEntityBuilder.build());httpPost.setConfig(requestConfig);response = client.execute(httpPost);} boolean status = response.getStatusLine().getStatusCode() == 200;StringBuilder respText = new StringBuilder();if (status) {HttpEntity entity = response.getEntity();if (entity != null) {BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(entity.getContent(), "utf-8"));String text;while ((text = bufferedReader.readLine()) != null)respText.append(text);EntityUtils.consume(entity);}}response.close();client.close();responseBody = respText.toString();System.out.println(responseBody);} catch (Exception e) {e.printStackTrace();return Result.toFailedJson(e.getMessage());} return responseBody;}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值