国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > Java > 正文

java公眾平臺(tái)通用接口工具類HttpConnectUtil實(shí)例代碼

2024-07-13 10:15:58
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

實(shí)例如下:

package com.common.util;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.ConnectException;import java.net.HttpURLConnection;import java.net.URL;import java.util.Date;import javax.net.ssl.HttpsURLConnection;import javax.net.ssl.SSLContext;import javax.net.ssl.SSLSocketFactory;import javax.net.ssl.TrustManager;import javax.servlet.http.HttpServletRequest;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import com.common.weixin.access.util.MyX509TrustManager;/** * 公眾平臺(tái)通用接口工具類 *  * @author * @date 2013-08-09 */public class HttpConnectUtil {private static Logger log = LoggerFactory.getLogger(HttpConnectUtil.class);/*** 發(fā)起https請(qǐng)求并獲取結(jié)果* * @param requestUrl 請(qǐng)求地址* @param requestMethod 請(qǐng)求方式(GET、POST)* @param outputStr 提交的數(shù)據(jù)* @return JSONObject(通過(guò)JSONObject.get(key)的方式獲取json對(duì)象的屬性值)*/public static String httpRequest(String requestUrl, String requestMethod, String outputStr) {String result = null;StringBuffer buffer = new StringBuffer();try {URL url = new URL(requestUrl);HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection();// 設(shè)置通用的請(qǐng)求屬性httpUrlConn.setRequestProperty("accept", "*/*");httpUrlConn.setRequestProperty("connection", "Keep-Alive");httpUrlConn.setRequestProperty("Charset", "utf-8");   httpUrlConn.setDoOutput(true);httpUrlConn.setDoInput(true);httpUrlConn.setUseCaches(false);// 設(shè)置請(qǐng)求方式(GET/POST)httpUrlConn.setRequestMethod(requestMethod);if ("GET".equalsIgnoreCase(requestMethod))httpUrlConn.connect();// 當(dāng)有數(shù)據(jù)需要提交時(shí)if (null != outputStr) {OutputStream outputStream = httpUrlConn.getOutputStream();// 注意編碼格式,防止中文亂碼outputStream.write(outputStr.getBytes("UTF-8"));outputStream.close();}// 將返回的輸入流轉(zhuǎn)換成字符串InputStream inputStream = httpUrlConn.getInputStream();InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");BufferedReader bufferedReader = new BufferedReader(inputStreamReader);String str = null;while ((str = bufferedReader.readLine()) != null) {buffer.append(str);}bufferedReader.close();inputStreamReader.close();// 釋放資源inputStream.close();inputStream = null;httpUrlConn.disconnect();result = buffer.toString();//jsonObject = JSONObject.fromObject(buffer.toString());} catch (ConnectException ce) {log.error("Weixin server connection timed out.");} catch (Exception e) {log.error("https request error:{}", e);}return result;}/*** 發(fā)起https請(qǐng)求并獲取結(jié)果* * @param requestUrl 請(qǐng)求地址* @param requestMethod 請(qǐng)求方式(GET、POST)* @param outputStr 提交的數(shù)據(jù)* @return 結(jié)果字符串*/public static String httpsRequest(String requestUrl, String requestMethod, String outputStr) throws Exception{String result = null;StringBuffer buffer = new StringBuffer();try {   // 創(chuàng)建SSLContext對(duì)象,并使用我們指定的信任管理器初始化    TrustManager[] tm = { new MyX509TrustManager() };    SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");    sslContext.init(null, tm, new java.security.SecureRandom());    // 從上述SSLContext對(duì)象中得到SSLSocketFactory對(duì)象    SSLSocketFactory ssf = sslContext.getSocketFactory();     URL url = new URL(requestUrl);    HttpsURLConnection httpUrlConn = (HttpsURLConnection) url.openConnection();    httpUrlConn.setSSLSocketFactory(ssf); // 設(shè)置通用的請(qǐng)求屬性httpUrlConn.setRequestProperty("accept", "*/*");httpUrlConn.setRequestProperty("connection", "Keep-Alive");httpUrlConn.setRequestProperty("Charset", "utf-8");  httpUrlConn.setDoOutput(true);httpUrlConn.setDoInput(true);httpUrlConn.setUseCaches(false);// 設(shè)置請(qǐng)求方式(GET/POST)httpUrlConn.setRequestMethod(requestMethod);if ("GET".equalsIgnoreCase(requestMethod))httpUrlConn.connect();// 當(dāng)有數(shù)據(jù)需要提交時(shí)if (null != outputStr) {OutputStream outputStream = httpUrlConn.getOutputStream();// 注意編碼格式,防止中文亂碼outputStream.write(outputStr.getBytes("UTF-8"));outputStream.close();}// 將返回的輸入流轉(zhuǎn)換成字符串InputStream inputStream = httpUrlConn.getInputStream();InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");BufferedReader bufferedReader = new BufferedReader(inputStreamReader);String str = null;while ((str = bufferedReader.readLine()) != null) {buffer.append(str);}bufferedReader.close();inputStreamReader.close();// 釋放資源inputStream.close();inputStream = null;httpUrlConn.disconnect();result = buffer.toString();//jsonObject = JSONObject.fromObject(buffer.toString());} catch (ConnectException ce) {log.error(requestUrl + " server connection timed out.");throw new Exception("連接服務(wù)器超時(shí)");} catch (Exception e) {log.error(requestUrl +" https request error:{}", e);throw new Exception("HTTPS請(qǐng)求錯(cuò)誤");}return result;} public static String getIpAddr(HttpServletRequest request) {String ip = request.getHeader("x-forwarded-for");if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("Proxy-Client-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("WL-Proxy-Client-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getRemoteAddr();}return ip;} }

以上這篇java公眾平臺(tái)通用接口工具類HttpConnectUtil實(shí)例代碼就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JAVA教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 江山市| 廊坊市| 水城县| 资源县| 永宁县| 武定县| 保山市| 汪清县| 利津县| 龙井市| 大足县| 安新县| 深州市| 张家川| 府谷县| 长岛县| 龙岩市| 南木林县| 广汉市| 岳普湖县| 武胜县| 柘城县| 四会市| 遂溪县| 林周县| 曲靖市| 赤水市| 长沙市| 苍溪县| 武冈市| 青冈县| 和龙市| 大安市| 门源| 惠来县| 阿拉尔市| 垫江县| 昆明市| 湛江市| 仙居县| 郴州市|