HttpUrlConnection实现小文件上传
来源:互联网 发布:中国海关统计数据库 编辑:程序博客网 时间:2024/04/30 15:15
uploadImg("your url", new String[]{ "C:\\Users\\po\\Desktop\\457880.jpg" });
public static void uploadImg(String urlStr, String[] files){String end = "\r\n";String PREFIX = "--";String boundary = UUID.randomUUID().toString();try{URL url = new URL(urlStr);HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();InputStream is = new FileInputStream(new File("C:\\Users\\po\\Desktop\\ssl.crt"));// 证书锁定,直接用预埋的证书生成TrustManagerKeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());keyStore.load(null);keyStore.setCertificateEntry("ll", CertificateFactory.getInstance("X.509").generateCertificate(is));// 通过TrustManager工厂生成TrustManagersTrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());trustManagerFactory.init(keyStore);TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();// 初始化SSL上下文SSLContext sslContext = SSLContext.getInstance("TLS");sslContext.init(null, trustManagers, null);final HostnameVerifier hostnameVerifier = new HostnameVerifier(){@Overridepublic boolean verify(String hostname, SSLSession session){return hostname.contains("xx.com.cn");}};conn.setSSLSocketFactory(sslContext.getSocketFactory());conn.setHostnameVerifier(hostnameVerifier);conn.setRequestMethod("POST");conn.setConnectTimeout(1000000);conn.setRequestProperty("Accept-Encoding", "gzip");conn.setRequestProperty("Connection", "Keep-Alive");conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);conn.setRequestProperty("Host", "xxx.xxx.xxx");conn.setRequestProperty("Charset", "utf-8");conn.setDoOutput(true);conn.setDoInput(true);conn.setUseCaches(false);StringBuilder builder = new StringBuilder();DataOutputStream dos = new DataOutputStream(conn.getOutputStream());builder.append(PREFIX + boundary + end);builder.append("Content-Disposition: form-data; name=headImgFile;filename=" + System.currentTimeMillis() + ".jpg" + end);builder.append("Content-Type:application/octet-stream" + end);builder.append("Content-Transfer-Encoding:binary" + end + end);dos.writeBytes(builder.toString());File file = new File(files[0]);FileInputStream fis = new FileInputStream(file);byte[] buffer = new byte[4096];int len;while ((len = fis.read(buffer)) != -1){System.out.println("uploading " + len);dos.write(buffer, 0, len);}fis.close();builder.append(end + PREFIX + boundary + PREFIX);dos.writeBytes(builder.toString());dos.flush();dos.close();conn.connect();int responseCode = conn.getResponseCode();if (responseCode == 200){InputStream inputStream = conn.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));System.out.println("response..." + URLDecoder.decode(reader.readLine()));reader.close();}} catch (Exception e){e.printStackTrace();}}
0 0
- HttpUrlConnection实现小文件上传
- 用httpUrlConnection实现文件上传
- HttpURLConnection上传文件(图片)小试
- JAVA使用HttpUrlConnection实现自动上传文件
- JAVA使用HttpUrlConnection实现自动上传文件
- Android 通过post上传文件--HttpURLConnection实现
- 使用HttpURLConnection上传文件
- HttpURLConnection POST 上传文件
- HttpURLConnection上传文件(图片)
- HttpURLConnection 上传文件
- HttpURLConnection上传文件
- HttpURLConnection上传文件
- 使用HttpURLConnection上传文件
- 使用HttpUrlConnection上传文件
- 通过HttpURLConnection上传文件
- HttpUrlConnection 自动上传文件
- HttpUrlConnection上传文件
- JavaSE-HttpURLConnection上传文件
- Java 获取mysql中数据
- 最简单的JavaBean学习
- java编程思想5
- CentOS7安装mysql5.6.26
- redis,mysql,memcache的区别与比较,redis两种数据存储持久化方式
- HttpUrlConnection实现小文件上传
- shrink_inactive_list
- JSON.NET VS BinaryFormatter 性能
- shrink_list
- ajax参数传递之[HttpGet]/[HttpPost]/[HttpPut]/[HttpDelete]请求
- 寂寞
- gdufe acm 1138 出题人这样不好吧
- MyBatis代码生成工具mybatis-generator在Myeclipse10中的使用
- iOS coretext框架第一章 基础知识