| package com.xzx.gc.util.pay.util;  | 
|   | 
| import javax.servlet.ServletException;  | 
| import javax.servlet.http.HttpServletRequest;  | 
| import javax.servlet.http.HttpServletResponse;  | 
| import java.io.*;  | 
| import java.net.*;  | 
| import java.util.Iterator;  | 
| import java.util.Map;  | 
|   | 
|   | 
| public class HttpRequestor {  | 
|     public static String charset = "utf-8";  | 
|     public static Integer connectTimeout = null;  | 
|     public static Integer socketTimeout = null;  | 
|     public static  String proxyHost = null;  | 
|     public static Integer proxyPort = null;  | 
|   | 
|     /**  | 
|      * Do GET request  | 
|      * @param url  | 
|      * @return  | 
|      * @throws Exception  | 
|      * @throws IOException  | 
|      */  | 
|     public static String doGet(String url) throws Exception {  | 
|   | 
|         URL localURL = new URL(url);  | 
|   | 
|         URLConnection connection = openConnection(localURL);  | 
|         HttpURLConnection httpURLConnection = (HttpURLConnection)connection;  | 
|   | 
|         httpURLConnection.setRequestProperty("Accept-Charset", charset);  | 
|         httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");  | 
|   | 
|         InputStream inputStream = null;  | 
|         InputStreamReader inputStreamReader = null;  | 
|         BufferedReader reader = null;  | 
|         StringBuffer resultBuffer = new StringBuffer();  | 
|         String tempLine = null;  | 
|   | 
|         if (httpURLConnection.getResponseCode() >= 300) {  | 
|             throw new Exception("HTTP Request is not success, Response code is " + httpURLConnection.getResponseCode());  | 
|         }  | 
|   | 
|         try {  | 
|             inputStream = httpURLConnection.getInputStream();  | 
|             inputStreamReader = new InputStreamReader(inputStream,"UTF-8");  | 
|             reader = new BufferedReader(inputStreamReader);  | 
|   | 
|             while ((tempLine = reader.readLine()) != null) {  | 
|                 resultBuffer.append(tempLine);  | 
|             }  | 
|   | 
|         } finally {  | 
|   | 
|             if (reader != null) {  | 
|                 reader.close();  | 
|             }  | 
|   | 
|             if (inputStreamReader != null) {  | 
|                 inputStreamReader.close();  | 
|             }  | 
|   | 
|             if (inputStream != null) {  | 
|                 inputStream.close();  | 
|             }  | 
|   | 
|         }  | 
|   | 
|         return resultBuffer.toString();  | 
|     }  | 
|   | 
|     /**  | 
|      * Do POST request  | 
|      * @param url  | 
|      * @param parameterMap  | 
|      * @return  | 
|      * @throws Exception  | 
|      */  | 
|     public String doPost(String url, Map parameterMap) throws Exception {  | 
|   | 
|         /* Translate parameter map to parameter date string */  | 
|         StringBuffer parameterBuffer = new StringBuffer();  | 
|         if (parameterMap != null) {  | 
|             Iterator iterator = parameterMap.keySet().iterator();  | 
|             String key = null;  | 
|             String value = null;  | 
|             while (iterator.hasNext()) {  | 
|                 key = (String)iterator.next();  | 
|                 if (parameterMap.get(key) != null) {  | 
|                     value = (String)parameterMap.get(key);  | 
|                 } else {  | 
|                     value = "";  | 
|                 }  | 
|   | 
|                 parameterBuffer.append(key).append("=").append(value);  | 
|                 if (iterator.hasNext()) {  | 
|                     parameterBuffer.append("&");  | 
|                 }  | 
|             }  | 
|         }  | 
|   | 
|         System.out.println("POST parameter : " + parameterBuffer.toString());  | 
|   | 
|         URL localURL = new URL(url);  | 
|   | 
|         URLConnection connection = openConnection(localURL);  | 
|         HttpURLConnection httpURLConnection = (HttpURLConnection)connection;  | 
|   | 
|         httpURLConnection.setDoOutput(true);  | 
|         httpURLConnection.setRequestMethod("POST");  | 
|         httpURLConnection.setRequestProperty("Accept-Charset", charset);  | 
|         httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");  | 
|         httpURLConnection.setRequestProperty("Content-Length", String.valueOf(parameterBuffer.length()));  | 
|   | 
|         OutputStream outputStream = null;  | 
|         OutputStreamWriter outputStreamWriter = null;  | 
|         InputStream inputStream = null;  | 
|         InputStreamReader inputStreamReader = null;  | 
|         BufferedReader reader = null;  | 
|         StringBuffer resultBuffer = new StringBuffer();  | 
|         String tempLine = null;  | 
|   | 
|         try {  | 
|             outputStream = httpURLConnection.getOutputStream();  | 
|             outputStreamWriter = new OutputStreamWriter(outputStream);  | 
|   | 
|             outputStreamWriter.write(parameterBuffer.toString());  | 
|             outputStreamWriter.flush();  | 
|   | 
|             if (httpURLConnection.getResponseCode() >= 300) {  | 
|                 throw new Exception("HTTP Request is not success, Response code is " + httpURLConnection.getResponseCode());  | 
|             }  | 
|   | 
|             inputStream = httpURLConnection.getInputStream();  | 
|             inputStreamReader = new InputStreamReader(inputStream);  | 
|             reader = new BufferedReader(inputStreamReader);  | 
|   | 
|             while ((tempLine = reader.readLine()) != null) {  | 
|                 resultBuffer.append(tempLine);  | 
|             }  | 
|   | 
|         } finally {  | 
|   | 
|             if (outputStreamWriter != null) {  | 
|                 outputStreamWriter.close();  | 
|             }  | 
|   | 
|             if (outputStream != null) {  | 
|                 outputStream.close();  | 
|             }  | 
|   | 
|             if (reader != null) {  | 
|                 reader.close();  | 
|             }  | 
|   | 
|             if (inputStreamReader != null) {  | 
|                 inputStreamReader.close();  | 
|             }  | 
|   | 
|             if (inputStream != null) {  | 
|                 inputStream.close();  | 
|             }  | 
|   | 
|         }  | 
|   | 
|         return resultBuffer.toString();  | 
|     }  | 
|   | 
|     public static URLConnection openConnection(URL localURL) throws IOException {  | 
|         URLConnection connection;  | 
|         if (proxyHost != null && proxyPort != null) {  | 
|             Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPort));  | 
|             connection = localURL.openConnection(proxy);  | 
|         } else {  | 
|             connection = localURL.openConnection();  | 
|         }  | 
|         return connection;  | 
|     }  | 
|   | 
|     /**  | 
|      * Render request according setting  | 
|      * @param connection  | 
|      */  | 
|     private void renderRequest(URLConnection connection) {  | 
|   | 
|         if (connectTimeout != null) {  | 
|             connection.setConnectTimeout(connectTimeout);  | 
|         }  | 
|   | 
|         if (socketTimeout != null) {  | 
|             connection.setReadTimeout(socketTimeout);  | 
|         }  | 
|   | 
|     }  | 
|   | 
|     /*  | 
|      * Getter & Setter  | 
|      */  | 
|     public Integer getConnectTimeout() {  | 
|         return connectTimeout;  | 
|     }  | 
|   | 
|     public void setConnectTimeout(Integer connectTimeout) {  | 
|         this.connectTimeout = connectTimeout;  | 
|     }  | 
|   | 
|     public Integer getSocketTimeout() {  | 
|         return socketTimeout;  | 
|     }  | 
|   | 
|     public void setSocketTimeout(Integer socketTimeout) {  | 
|         this.socketTimeout = socketTimeout;  | 
|     }  | 
|   | 
|     public String getProxyHost() {  | 
|         return proxyHost;  | 
|     }  | 
|   | 
|     public void setProxyHost(String proxyHost) {  | 
|         this.proxyHost = proxyHost;  | 
|     }  | 
|   | 
|     public Integer getProxyPort() {  | 
|         return proxyPort;  | 
|     }  | 
|   | 
|     public void setProxyPort(Integer proxyPort) {  | 
|         this.proxyPort = proxyPort;  | 
|     }  | 
|   | 
|     public String getCharset() {  | 
|         return charset;  | 
|     }  | 
|   | 
|     public void setCharset(String charset) {  | 
|         this.charset = charset;  | 
|     }  | 
|   | 
|   | 
|     public static void main(String[] args) {  | 
|         String code="";  | 
|         String appid = "wx6d7dfd9073dfa875";  | 
|         String secret = "4d3aea976157935e563f8ef01c7a4293";  | 
|         String requestUrl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid="+appid+"&secret="+secret+"&code="+code+"&grant_type=authorization_code";  | 
|         try {  | 
|             String  openid = new HttpRequestor().doGet(requestUrl);  | 
|             System.out.println(openid);  | 
|         } catch (Exception e) {  | 
|             e.printStackTrace();  | 
|         }  | 
|   | 
|     }  | 
|     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  | 
|   | 
|       /*  String code = request.getParameter("code");  | 
|         String appid = "wx4b4009c4fce00e0c";  | 
|         String secret = "4d3aea976157935e563f8ef01c7a4293";  | 
|         String requestUrl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid="+appid+"&secret="+secret+"&code="+wxCode+"&grant_type=authorization_code";  | 
|        */ //第一次请求 获取access_token 和 openid  | 
|        /* String  oppid = new HttpRequestor().doGet(requestUrl);  | 
|         JSONObject oppidObj =JSONObject.fromObject(oppid);  | 
|         String access_token = (String) oppidObj.get("access_token");  | 
|         String openid = (String) oppidObj.get("openid");  | 
|         String requestUrl2 = "https://api.weixin.qq.com/sns/userinfo?access_token="+access_token+"&openid="+openid+"&lang=zh_CN";  | 
|         String userInfoStr = new HttpRequestor().doGet(requestUrl2);  | 
|         JSONObject wxUserInfo =JSONObject.fromObject(userInfoStr);*/  | 
|     }  | 
| }  |