一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - java公眾平臺通用接口工具類HttpConnectUtil實(shí)例代碼

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

2021-03-15 12:14guishengbin Java教程

下面小編就為大家分享一篇java公眾平臺通用接口工具類HttpConnectUtil實(shí)例代碼,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

實(shí)例如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
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;
 
/**
 * 公眾平臺通用接口工具類
 *
 * @author
 * @date 2013-08-09
 */
public class HttpConnectUtil {
private static Logger log = LoggerFactory.getLogger(HttpConnectUtil.class);
 
/**
* 發(fā)起https請求并獲取結(jié)果
*
* @param requestUrl 請求地址
* @param requestMethod 請求方式(GET、POST)
* @param outputStr 提交的數(shù)據(jù)
* @return JSONObject(通過JSONObject.get(key)的方式獲取json對象的屬性值)
*/
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è)置通用的請求屬性
httpUrlConn.setRequestProperty("accept", "*/*");
httpUrlConn.setRequestProperty("connection", "Keep-Alive");
httpUrlConn.setRequestProperty("Charset", "utf-8");
   
httpUrlConn.setDoOutput(true);
httpUrlConn.setDoInput(true);
httpUrlConn.setUseCaches(false);
// 設(shè)置請求方式(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請求并獲取結(jié)果
*
* @param requestUrl 請求地址
* @param requestMethod 請求方式(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對象,并使用我們指定的信任管理器初始化
   TrustManager[] tm = { new MyX509TrustManager() };
   SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
   sslContext.init(null, tm, new java.security.SecureRandom());
   // 從上述SSLContext對象中得到SSLSocketFactory對象
   SSLSocketFactory ssf = sslContext.getSocketFactory();
 
   URL url = new URL(requestUrl);
   HttpsURLConnection httpUrlConn = (HttpsURLConnection) url.openConnection();
   httpUrlConn.setSSLSocketFactory(ssf);
// 設(shè)置通用的請求屬性
httpUrlConn.setRequestProperty("accept", "*/*");
httpUrlConn.setRequestProperty("connection", "Keep-Alive");
httpUrlConn.setRequestProperty("Charset", "utf-8"); 
httpUrlConn.setDoOutput(true);
httpUrlConn.setDoInput(true);
httpUrlConn.setUseCaches(false);
// 設(shè)置請求方式(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請求錯誤");
}
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公眾平臺通用接口工具類HttpConnectUtil實(shí)例代碼就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持服務(wù)器之家。

原文鏈接:http://blog.csdn.net/guishengbin/article/details/48859827

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 包臀裙女教师波多野结衣 | 天天色视频| 故意短裙公车被强好爽在线播放 | v视界影院_vsjla | 国产馆在线观看免费的 | 国内精品露脸在线视频播放 | 性欧美video 性满足久久久久久久久 | 99自拍网 | 国产成人福利免费视频 | aaa在线| 香蕉久久一区二区不卡无毒影院 | 动漫美女被吸乳羞羞小说 | 免费网站视频 | 国产99精品 | 湖南美女被黑人4p到惨叫 | 精品国产自在现线拍国语 | 黄色cc| 日本一卡二卡3卡四卡无卡网址 | 日本无吗免费一二区 | 26uuu久久 | 97菊爱网 | 五月最新商场女厕所高跟嘘嘘 | caoporen97免费公开视频 | 办公室恋情在线 | chinesexxxxhd人妖 chinesespanking调教 | 久久伊人中文字幕有码 | 亚洲人的天堂男人爽爽爽 | 男人的天堂视频 | 丰满在线观看 | 日韩在线视频免费观看 | 亚洲码在线观看 | 国产福利一区二区三区 | 勾搭已婚高h| 无人区尖叫之夜美女姐姐视频 | 亚洲国产高清一区二区三区 | 国产精品久久香蕉免费播放 | 欧美成人在线影院 | 四虎免费影院4hu永久免费 | 日韩网站免费 | 俄罗斯一级成人毛片 | 国产精品www夜色影视 |