package com.matrix.component.tools; 
 | 
  
 | 
  
 | 
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"; 
 | 
  
 | 
  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; 
 | 
    } 
 | 
  
 | 
    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; 
 | 
  } 
 | 
   
 | 
  public HttpResponse sendHttpsPost2(String urlString, Map<String, Object> 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; 
 | 
          } 
 | 
} 
 |