| 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(); | 
|     } | 
|   | 
| } |