版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
千里之行,始于足下。第2頁/共2頁精品文檔推薦HTTPS請求工具類匯總HTTPS請求
packagecom.sunzk.dreamsunlight.weixin.util;
importjava.io.BufferedReader;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.io.OutputStream;
import.ConnectException;
import.URL;
import.ssl.HttpsURLConnection;import.ssl.SSLContext;
import.ssl.SSLSocketFactory;import.ssl.TrustManager;
importnet.sf.json.JSONException;
importnet.sf.json.JSONObject;
importorg.apache.log4j.Logger;
import
com.sunzk.dreamsunlight.weixin.certificate.MyX509TrustManager;
importcom.sunzk.dreamsunlight.weixin.model.Menu;import
com.sunzk.dreamsunlight.weixin.token.AccessToken;
/**
*
*@ClassName:WeiXinHttpsUtil
*
*@Description:TODO(微信HTTPS請求工具類)
*
*@authorsunzk-dreamsunlight-QQ(1131341075)
*
*@date2016-11-14上午10:05:56
*
*/
publicclassWeiXinHttpsUtil{
privatestaticLoggerlogger=
Logger.getLogger(WeiXinHttpsUtil.class);
//獵取access_token的接口地址(GET)限200(次/天)
publicfinalstaticStringaccess_token_url="/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
/**
*發(fā)起https請求并獵取結(jié)果
*
*@paramrequestUrl請求地址
*@paramrequestMethod請求方式(GET、POST)
*@paramoutputStr提交的數(shù)據(jù)
*@returnJSONObject(經(jīng)過JSONObject.get(key)的方式獵取json對象的屬性值)
*/
publicstaticJSONObjecthttpRequest(StringrequestUrl,StringrequestMethod,StringoutputStr){
JSONObjectjsonObject=null;
StringBufferbuffer=newStringBuffer();
try{
//創(chuàng)建SSLContext對象,并使用我們指定的
信任治理器初始化
TrustManager[]tm={new
MyX509TrustManager()};
SSLContextsslContext=
SSLContext.getInstance("SSL","SunJSSE");
sslContext.init(null,tm,new
java.security.SecureRandom());
//從上述SSLContext對象中得到SSLSocketFactory對象
SSLSocketFactoryssf=
sslContext.getSocketFactory();
URLurl=newURL(requestUrl);
HttpsURLConnectionhttpUrlConn=(HttpsURLConnection)url.openConnection();
httpUrlConn.setSSLSocketFactory(ssf);
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ù)需要提交時
if(null!=outputStr){
OutputStreamoutputStream=httpUrlConn.getOutputStream();
//注意編碼格式,防止中文亂碼
outputStream.write(outputStr.getBytes("UTF-8"));outputStream.close();
}
//將返回的輸入流轉(zhuǎn)換成字符串
InputStreaminputStream=httpUrlConn.getInputStream();
InputStreamReaderinputStreamReader=newInputStreamReader(inputStream,"UTF-8");
BufferedReaderbufferedReader=newBufferedReader(inputStreamReader);
Stringstr=null;
while((str=
bufferedReader.readLine())!=null){
buffer.append(str);
}
bufferedReader.close();
inputStreamReader.close();
//釋放資源
inputStream.close();
inputStream=null;
httpUrlConn.disconnect();
jsonObject=
JSONUtils.toJSONObject(buffer.toString());
}catch(ConnectExceptionce){
("Weixinserverconnectiontimedout.");
}catch(Exceptione){
("httpsrequesterror:{}",e);
}
returnjsonObject;
}
/**
*獵取access_token
*
*@paramappid憑證
*@paramappsecret密鑰
*@return
*/
publicstaticAccessTokengetAccessToken(Stringappid,Stringappsecret){
AccessTokenaccessToken=null;
StringrequestUrl=
access_token_url.replace("APPID",
appid).replace("APPSECRET",appsecret);
JSONObjectjsonObject=
httpRequest(requestUrl,"GET",null);
//假如請求成功
if(null!=jsonObject){
try{
accessToken=newAccessToken();
accessToken.setAccess_token(jsonObject.getString("access_token"));
accessToken.setExpires_in(jsonObject.getInt("expires_in"));
}catch(JSONExceptione){
("獵取token失敗errcode:{}errmsg:{}"+jsonObject.getInt("errcode")+jsonObject.getString("errmsg"));
accessToken=null;//獵取token失敗}
}
returnaccessToken;
}
publicstaticvoidmain(String[]args){
Stringurl=
"/cgi-bin/material/batchget_material?access_token=vtKMZ09f7uuoB0s9Otn2g8QIbCksRYRPJbKwBUB37wM0vhTQchYBC8gXV2OQjYmu8GcYhF1sdkpSzbu0dge6K_2qh5N6po3RMNpEA-A0WwgCQXgADAKYF";StringrequestMethod="GET";
JSONObjectobj=
httpRequest(url,requestMethod,null);
Stringinfo=JSONUtils.toJSONString(obj);System.out.println(""+info);
}
}
HTTP請求
packagecom.sunzk.dreamsunlight.weixin.util;
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.io.PrintWriter;
import.URL;
import.URLConnection;
import.URLEncoder;
importjava.util.Map;
/**
*
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年滬教版必修3生物上冊階段測試試卷含答案
- 2025年粵人版選擇性必修3地理下冊月考試卷
- 2024年滬教新版必修1物理上冊月考試卷
- 事業(yè)單位臨時工勞動合同范本
- 抗震及安全鑒定檢測工作技術(shù)服務(wù)合同(2篇)
- 房屋合同范本(2篇)
- 打疫苗農(nóng)業(yè)技術(shù)服務(wù)合同(2篇)
- 二零二五版農(nóng)用車綠色出行推廣計劃合同4篇
- 2025年度農(nóng)家樂旅游電子商務(wù)平臺建設(shè)與運營承包合同4篇
- 2025年度新能源電站運營派遣人員勞動合同3篇
- 開展課外讀物負面清單管理的具體實施舉措方案
- 2025年云南中煙工業(yè)限責(zé)任公司招聘420人高頻重點提升(共500題)附帶答案詳解
- 2025-2030年中國洗衣液市場未來發(fā)展趨勢及前景調(diào)研分析報告
- 2024解析:第三章物態(tài)變化-基礎(chǔ)練(解析版)
- 北京市房屋租賃合同自行成交版北京市房屋租賃合同自行成交版
- 《AM聚丙烯酰胺》課件
- 系統(tǒng)動力學(xué)課件與案例分析
- 《智能網(wǎng)聯(lián)汽車智能傳感器測試與裝調(diào)》電子教案
- 客戶分級管理(標(biāo)準(zhǔn)版)課件
- GB/T 32399-2024信息技術(shù)云計算參考架構(gòu)
- 人教版數(shù)學(xué)七年級下冊數(shù)據(jù)的收集整理與描述小結(jié)
評論
0/150
提交評論