HTTPS請求工具類匯總_第1頁
HTTPS請求工具類匯總_第2頁
HTTPS請求工具類匯總_第3頁
HTTPS請求工具類匯總_第4頁
HTTPS請求工具類匯總_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論