package com.matrix.component.tools; 
 | 
  
 | 
import org.apache.commons.httpclient.HttpClient; 
 | 
import org.apache.commons.httpclient.HttpException; 
 | 
import org.apache.commons.httpclient.methods.GetMethod; 
 | 
import org.apache.commons.httpclient.methods.PostMethod; 
 | 
import org.apache.commons.httpclient.methods.RequestEntity; 
 | 
import org.apache.commons.httpclient.methods.StringRequestEntity; 
 | 
  
 | 
import java.io.BufferedReader; 
 | 
import java.io.IOException; 
 | 
import java.io.InputStreamReader; 
 | 
import java.io.OutputStreamWriter; 
 | 
import java.net.HttpURLConnection; 
 | 
import java.net.URL; 
 | 
import java.util.Map; 
 | 
  
 | 
public class HttpCurlUtil { 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 向指定URL发送POST方法的请求 
 | 
     * 
 | 
     * @param url  发送请求的URL 
 | 
     * @param data 请求参数,请求参数应该是json格式。 
 | 
     */ 
 | 
    public static String sendPostHttp(String url, String data) throws HttpException, IOException { 
 | 
  
 | 
        HttpClient httpClient = new HttpClient(); 
 | 
        PostMethod post = new PostMethod(url); 
 | 
        post.setRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"); 
 | 
        post.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36"); 
 | 
        post.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); 
 | 
        post.setRequestHeader("Connection", "keep-alive"); 
 | 
        RequestEntity entity = new StringRequestEntity(data, "text/html", "utf-8"); 
 | 
        post.setRequestEntity(entity); 
 | 
        httpClient.executeMethod(post); 
 | 
  
 | 
        return post.getResponseBodyAsString(); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 向指定URL发送get方法的请求 
 | 
     * 
 | 
     * @param url  发送请求的URL 
 | 
     * @param data 请求参数,请求参数应该是json格式。 
 | 
     */ 
 | 
    public static String sendGetHttp(String url, Map<String, String> params) throws HttpException, 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++; 
 | 
            } 
 | 
            url = url + param; 
 | 
        } 
 | 
        HttpClient httpClient = new HttpClient(); 
 | 
        GetMethod method = new GetMethod(url); 
 | 
        method.setRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"); 
 | 
        method.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36"); 
 | 
        method.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); 
 | 
        method.setRequestHeader("Connection", "keep-alive"); 
 | 
        httpClient.executeMethod(method); 
 | 
        return method.getResponseBodyAsString(); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 向指定URL发送POST请求 
 | 
     * @param url 请求路径 
 | 
     * @param params 请求参数 
 | 
     * @return 
 | 
     */ 
 | 
    public static String sendPost(String url, Map<String, String> params) { 
 | 
        OutputStreamWriter out = null; 
 | 
        BufferedReader in = null; 
 | 
        StringBuilder result = new StringBuilder(); 
 | 
        try { 
 | 
            URL realUrl = new URL(url); 
 | 
            HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection(); 
 | 
            // 发送POST请求必须设置如下两行 
 | 
            conn.setDoOutput(true); 
 | 
            conn.setDoInput(true); 
 | 
            // POST方法 
 | 
            conn.setRequestMethod("POST"); 
 | 
            // 设置通用的请求属性 
 | 
            conn.setRequestProperty("accept", "*/*"); 
 | 
            conn.setRequestProperty("connection", "Keep-Alive"); 
 | 
            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); 
 | 
            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
 | 
            conn.connect(); 
 | 
            // 获取URLConnection对象对应的输出流 
 | 
            out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8"); 
 | 
            // 发送请求参数 
 | 
            if (params != null) { 
 | 
                StringBuilder param = new StringBuilder(); 
 | 
                for (Map.Entry<String, String> entry : params.entrySet()) { 
 | 
                    if (param.length() > 0) { 
 | 
                        param.append("&"); 
 | 
                    } 
 | 
                    param.append(entry.getKey()); 
 | 
                    param.append("="); 
 | 
                    param.append(entry.getValue()); 
 | 
                } 
 | 
                out.write(param.toString()); 
 | 
            } 
 | 
            // flush输出流的缓冲 
 | 
            out.flush(); 
 | 
            // 定义BufferedReader输入流来读取URL的响应 
 | 
            in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8")); 
 | 
            String line; 
 | 
            while ((line = in.readLine()) != null) { 
 | 
                result.append(line); 
 | 
            } 
 | 
        } catch (Exception e) { 
 | 
            e.printStackTrace(); 
 | 
        } 
 | 
        //使用finally块来关闭输出流、输入流 
 | 
        finally { 
 | 
            try { 
 | 
                if (out != null) { 
 | 
                    out.close(); 
 | 
                } 
 | 
                if (in != null) { 
 | 
                    in.close(); 
 | 
                } 
 | 
            } catch (IOException ex) { 
 | 
                ex.printStackTrace(); 
 | 
            } 
 | 
        } 
 | 
        return result.toString(); 
 | 
    } 
 | 
  
 | 
} 
 |