| package com.matrix.component.wechat.externalInterface.common; | 
|   | 
| import org.apache.log4j.Logger; | 
|   | 
| import javax.net.ssl.HttpsURLConnection; | 
| import java.io.*; | 
| import java.net.HttpURLConnection; | 
| import java.net.URL; | 
| import java.util.Map; | 
|   | 
| public class HttpRequest { | 
|     public static final String SEND_POST = "POST"; | 
|     public static final String SEND_GET = "GET"; | 
|     Logger log=Logger.getLogger(HttpRequest.class); | 
|     private HttpRequest() { | 
|     } | 
|   | 
|     public static HttpRequest createHttpRequest() { | 
|         return new HttpRequest(); | 
|     } | 
|   | 
|     public HttpResponse sendHttpGet(String urlString, Map<String, String> params) throws IOException { | 
|   | 
|         if (params != null) { | 
|             StringBuffer param = new StringBuffer(); | 
|             int i = 0; | 
|             for (String key : params.keySet()) { | 
|                 if (i == 0) | 
|                     param.append("?"); | 
|                 else | 
|                     param.append("&"); | 
|                 param.append(key).append("=").append((String) params.get(key)); | 
|                 i++; | 
|             } | 
|             urlString = urlString + param; | 
|         } | 
|         log.info("sent http get url=" + urlString); | 
|         URL url = new URL(urlString); | 
|         HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); | 
|         urlConnection.setRequestMethod("GET"); | 
|         urlConnection.setDoOutput(true); | 
|         urlConnection.setDoInput(true); | 
|         urlConnection.setUseCaches(false); | 
|   | 
|         HttpResponse response = new HttpResponse(); | 
|         response.setInputStream(urlConnection.getInputStream()); | 
|         response.setContentType(urlConnection.getContentType()); | 
|         response.setContentLength(urlConnection.getContentLength()); | 
|   | 
|         response.setFileName(urlConnection.getRequestProperty("filename")); | 
|         return response; | 
|     } | 
|   | 
|     public HttpResponse sendHttpPost(String urlString, Map<String, String> params, String filePath, String contentType) | 
|             throws IOException { | 
|         if (params != null) { | 
|             StringBuffer param = new StringBuffer(); | 
|             int i = 0; | 
|             for (String key : params.keySet()) { | 
|                 if (i == 0) | 
|                     param.append("?"); | 
|                 else | 
|                     param.append("&"); | 
|                 param.append(key).append("=").append((String) params.get(key)); | 
|                 i++; | 
|             } | 
|             urlString = urlString + param; | 
|         } | 
|   | 
|         URL url = new URL(urlString); | 
|         HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); | 
|   | 
|         urlConnection.setRequestMethod("POST"); | 
|         urlConnection.setDoOutput(true); | 
|         urlConnection.setDoInput(true); | 
|         urlConnection.setUseCaches(false); | 
|   | 
|         File file = new File(filePath); | 
|   | 
|         urlConnection.setRequestProperty("Connection", "Keep-Alive"); | 
|         urlConnection.setRequestProperty("Charset", "UTF-8"); | 
|   | 
|         String BOUNDARY = "----------" + System.currentTimeMillis(); | 
|         urlConnection.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=\"file\";filename=\"" + file.getName() + "\"\r\n"); | 
|         sb.append("Content-Type:application/octet-stream\r\n\r\n"); | 
|   | 
|         byte[] head = sb.toString().getBytes("utf-8"); | 
|   | 
|         OutputStream out1 = new DataOutputStream(urlConnection.getOutputStream()); | 
|   | 
|         out1.write(head); | 
|   | 
|         DataInputStream in1 = new DataInputStream(new FileInputStream(file)); | 
|         int bytes = 0; | 
|         byte[] bufferOut = new byte[1024]; | 
|         while ((bytes = in1.read(bufferOut)) != -1) { | 
|             out1.write(bufferOut, 0, bytes); | 
|         } | 
|         in1.close(); | 
|   | 
|         byte[] foot = ("\r\n--" + BOUNDARY + "--\r\n").getBytes("utf-8"); | 
|   | 
|         out1.write(foot); | 
|   | 
|         out1.flush(); | 
|         out1.close(); | 
|   | 
|         FileInputStream in = new FileInputStream(file); | 
|   | 
|         OutputStream out = urlConnection.getOutputStream(); | 
|         byte[] buf = new byte[1024]; | 
|         int hasRead = 0; | 
|         while ((hasRead = in.read(buf)) > 0) { | 
|             out.write(buf, 0, hasRead); | 
|         } | 
|         in.close(); | 
|         out.flush(); | 
|         out.close(); | 
|   | 
|         HttpResponse response = new HttpResponse(); | 
|         response.setInputStream(urlConnection.getInputStream()); | 
|   | 
|         return response; | 
|     } | 
|   | 
|     public HttpResponse sendHttpsGet(String urlString, Map<String, String> params) throws IOException { | 
|         if (params != null) { | 
|             StringBuffer param = new StringBuffer(); | 
|             int i = 0; | 
|             for (String key : params.keySet()) { | 
|                 if (i == 0) | 
|                     param.append("?"); | 
|                 else | 
|                     param.append("&"); | 
|                 param.append(key).append("=").append((String) params.get(key)); | 
|                 i++; | 
|             } | 
|             urlString = urlString + param; | 
|         } | 
|   | 
|         URL url = new URL(urlString); | 
|         HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection(); | 
|   | 
|         urlConnection.setRequestMethod("GET"); | 
|         urlConnection.setDoOutput(true); | 
|         urlConnection.setDoInput(true); | 
|         urlConnection.setUseCaches(false); | 
|   | 
|         HttpResponse response = new HttpResponse(); | 
|         response.setInputStream(urlConnection.getInputStream()); | 
|         response.setContentType(urlConnection.getContentType()); | 
|         response.setContentLength(urlConnection.getContentLength()); | 
|   | 
|         return response; | 
|     } | 
|   | 
|     public HttpResponse sendHttpsPost(String urlString, Map<String, String> params, String sendData) | 
|             throws IOException { | 
|         if (params != null) { | 
|             StringBuffer param = new StringBuffer(); | 
|             int i = 0; | 
|             for (String key : params.keySet()) { | 
|                 if (i == 0) | 
|                     param.append("?"); | 
|                 else | 
|                     param.append("&"); | 
|                 param.append(key).append("=").append((String) params.get(key)); | 
|                 i++; | 
|             } | 
|             urlString = urlString + param; | 
|         } | 
|   | 
|         URL url = new URL(urlString); | 
|         HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection(); | 
|   | 
|         urlConnection.setRequestMethod("POST"); | 
|         urlConnection.setDoOutput(true); | 
|         urlConnection.setDoInput(true); | 
|         urlConnection.setUseCaches(false); | 
|   | 
|         if (sendData != null) { | 
|             urlConnection.getOutputStream().write(sendData.getBytes("utf-8")); | 
|             urlConnection.getOutputStream().flush(); | 
|             urlConnection.getOutputStream().close(); | 
|         } | 
|   | 
|         HttpResponse response = new HttpResponse(); | 
|         response.setInputStream(urlConnection.getInputStream()); | 
|         response.setContentType(urlConnection.getContentType()); | 
|         response.setContentLength(urlConnection.getContentLength()); | 
|   | 
|         return response; | 
|     } | 
| } |