| | |
| | | package com.doumee.core.utils; |
| | | |
| | | import javax.net.ssl.*; |
| | | import java.io.ByteArrayOutputStream; |
| | | import java.io.InputStream; |
| | | import java.io.OutputStream; |
| | | import java.io.*; |
| | | import java.net.HttpURLConnection; |
| | | import java.net.URL; |
| | | import java.security.KeyManagementException; |
| | |
| | | return connectionHttp(url, "POST", data, "application/json"); |
| | | } |
| | | } |
| | | public static String uploadTempMedia(String urlString ,String fileUrl){ |
| | | HttpsURLConnection conn= null; |
| | | try { |
| | | String fileName = fileUrl.substring(fileUrl.lastIndexOf("/") + 1); |
| | | // 获取网络图片 |
| | | URL mediaUrl = new URL(fileUrl); |
| | | HttpURLConnection meidaConn = (HttpURLConnection) mediaUrl.openConnection(); |
| | | meidaConn.setDoOutput(true); |
| | | meidaConn.setRequestMethod("GET"); |
| | | |
| | | String result = null; |
| | | URL url=new URL(urlString); |
| | | conn=(HttpsURLConnection) url.openConnection(); |
| | | conn.setRequestMethod("POST");//以POST方式提交表单 |
| | | conn.setDoInput(true); |
| | | conn.setDoOutput(true); |
| | | conn.setUseCaches(false);//POST方式不能使用缓存 |
| | | //设置请求头信息 |
| | | conn.setRequestProperty("Connection", "Keep-Alive"); |
| | | conn.setRequestProperty("Charset", "UTF-8"); |
| | | //设置边界 |
| | | String BOUNDARY="----------"+System.currentTimeMillis(); |
| | | conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + BOUNDARY); |
| | | //请求正文信息 |
| | | //第一部分 |
| | | StringBuilder sb=new StringBuilder(); |
| | | sb.append("--");//必须多两条道 |
| | | sb.append(BOUNDARY); |
| | | sb.append("\r\n"); |
| | | sb.append("Content-Disposition: form-data;name=\"media\"; filename=\"" + fileName+"\"\r\n"); |
| | | |
| | | sb.append("Content-Type:application/octet-stream\r\n\r\n"); |
| | | System.out.println("sb:"+sb); |
| | | |
| | | //获得输出流 |
| | | OutputStream out=new DataOutputStream(conn.getOutputStream()); |
| | | //输出表头 |
| | | out.write(sb.toString().getBytes("UTF-8")); |
| | | //文件正文部分 |
| | | //把文件以流的方式 推送道URL中 |
| | | DataInputStream din=new DataInputStream(meidaConn.getInputStream()); |
| | | int bytes=0; |
| | | byte[] buffer=new byte[1024]; |
| | | while((bytes=din.read(buffer))!=-1){ |
| | | out.write(buffer,0,bytes); |
| | | } |
| | | din.close(); |
| | | //结尾部分 |
| | | byte[] foot=("\r\n--" + BOUNDARY + "--\r\n").getBytes("UTF-8");//定义数据最后分割线 |
| | | out.write(foot); |
| | | out.flush(); |
| | | out.close(); |
| | | if(HttpsURLConnection.HTTP_OK==conn.getResponseCode()){ |
| | | InputStream is = conn.getInputStream(); |
| | | byte[] b = new byte[4096]; |
| | | ByteArrayOutputStream baos = new ByteArrayOutputStream(b.length); |
| | | int len; |
| | | while ((len = is.read(b)) != -1) { |
| | | baos.write(b, 0, len); |
| | | } |
| | | is.close(); |
| | | return baos.toString("utf-8"); |
| | | } |
| | | return result; |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } finally { |
| | | if(conn != null){ |
| | | conn.disconnect(); |
| | | } |
| | | } |
| | | return null; |
| | | |
| | | } |
| | | public static String connection(String url,String method,String data,String contentType,boolean ignoreSSL){ |
| | | HttpsURLConnection connection = null; |
| | | try { |
| | |
| | | try { |
| | | URL _url = new URL(url); |
| | | connection = (HttpURLConnection) _url.openConnection(); |
| | | connection.setRequestMethod(method); |
| | | connection.setDoOutput(true); |
| | | connection.setDoInput(true); |
| | | connection.setUseCaches(false); |
| | | if(contentType != null){ |
| | | connection.setRequestProperty("Content-Type", contentType); |
| | | } |
| | | connection.connect(); |
| | | if(data != null){ |
| | | OutputStream outputStream = connection.getOutputStream(); |
| | | outputStream.write(data.getBytes("utf-8")); |
| | | outputStream.close(); |
| | | } |
| | | int responseCode = connection.getResponseCode(); |
| | | if (responseCode == HttpsURLConnection.HTTP_OK) { |
| | | connection.setRequestMethod("GET"); |
| | | return connection.getInputStream(); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } finally { |
| | | if(connection != null){ |
| | | connection.disconnect(); |
| | | } |
| | | } |
| | | return null; |
| | | } |