HTTPS请求工具类Word下载.docx
- 文档编号:3748681
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:14
- 大小:17.44KB
HTTPS请求工具类Word下载.docx
《HTTPS请求工具类Word下载.docx》由会员分享,可在线阅读,更多相关《HTTPS请求工具类Word下载.docx(14页珍藏版)》请在冰点文库上搜索。
p>
*@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="
"
;
/**
*发起https请求并获取结果
*@paramrequestUrl请求地址
*@paramrequestMethod请求方式(GET、POST)
*@paramoutputStr提交的数据
*@returnJSONObject(通过JSONObject.get(key)的方式获取json对象的属性值)
*/
publicstaticJSONObjecthttpRequest(StringrequestUrl,StringrequestMethod,StringoutputStr){
JSONObjectjsonObject=null;
StringBufferbuffer=newStringBuffer();
try{
//创建SSLContext对象,并使用我们指定的信任管理器初始化
TrustManager[]tm={newMyX509TrustManager()};
SSLContextsslContext=SSLContext.getInstance("
SSL"
"
SunJSSE"
);
sslContext.init(null,tm,newjava.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);
//设置请求方式(GET/POST)
httpUrlConn.setRequestMethod(requestMethod);
if("
GET"
.equalsIgnoreCase(requestMethod))
httpUrlConn.connect();
//当有数据需要提交时
if(null!
=outputStr){
OutputStreamoutputStream=httpUrlConn.getOutputStream();
//注意编码格式,防止中文乱码
outputStream.write(outputStr.getBytes("
UTF-8"
));
outputStream.close();
}
//将返回的输入流转换成字符串
InputStreaminputStream=httpUrlConn.getInputStream();
InputStreamReaderinputStreamReader=newInputStreamReader(inputStream,"
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){
logger.info("
Weixinserverconnectiontimedout."
}catch(Exceptione){
logger.info("
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,"
null);
//如果请求成功
=jsonObject){
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="
StringrequestMethod="
JSONObjectobj=httpRequest(url,requestMethod,null);
Stringinfo=JSONUtils.toJSONString(obj);
System.out.println("
<
------返回信息------>
+info);
}
}
HTTP请求
importjava.io.IOException;
importjava.io.PrintWriter;
import.URLConnection;
import.URLEncoder;
importjava.util.Map;
HttpUtil
TODO(HttpRequest请求工具类)
*@date2016-11-11上午10:
44:
44
publicclassHttpUtil{
*使用Get方式获取数据
*@paramurl
*URL包括参数,
*@paramcharset
publicstaticStringsendGet(Stringurl,Stringcharset){
Stringresult="
BufferedReaderin=null;
URLrealUrl=newURL(url);
//打开和URL之间的连接
URLConnectionconnection=realUrl.openConnection();
//设置通用的请求属性
connection.setRequestProperty("
accept"
*/*"
connection"
Keep-Alive"
user-agent"
"
Mozilla/4.0(compatible;
MSIE6.0;
WindowsNT5.1;
SV1)"
//建立实际的连接
connection.connect();
//定义BufferedReader输入流来读取URL的响应
in=newBufferedReader(newInputStreamReader(
connection.getInputStream(),charset));
Stringline;
while((line=in.readLine())!
result+=line;
System.out.println("
发送GET请求出现异常!
+e);
e.printStackTrace();
//使用finally块来关闭输入流
finally{
if(in!
in.close();
}catch(Exceptione2){
e2.printStackTrace();
returnresult;
*POST请求,字符串形式数据
*@paramurl请求地址
*@paramparam请求数据
*@paramcharset编码方式
publicstaticStringsendPostUrl(Stringurl,Stringparam,Stringcharset){
PrintWriterout=null;
URLConnectionconn=realUrl.openConnection();
conn.setRequestProperty("
//发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
//获取URLConnection对象对应的输出流
out=newPrintWriter(conn.getOutputStream());
//发送请求参数
out.print(param);
//flush输出流的缓冲
out.flush();
//定义BufferedReader输入流来读取URL的响应
conn.getInputStream(),charset));
发送POST请求出现异常!
//使用finally块来关闭输出流、输入流
if(out!
out.close();
}catch(IOExceptionex){
ex.printStackTrace();
*POST请求,Map形式数据
publicstaticStringsendPost(Stringurl,Map<
String,String>
param,
Stringcharset){
if(param!
=null&
&
!
param.isEmpty()){
for(Map.Entry<
entry:
param.entrySet()){
buffer.append(entry.getKey()).append("
="
)
.append(URLEncoder.encode(entry.getValue()))
.append("
buffer.deleteCharAt(buffer.length()-1);
out.print(buffer);
publicstaticvoidmain(String[]args){
Stringencode="
GB2312"
Stringcontent=sendGet(url,encode);
-------------HttpRquest请求结果-------------->
+content);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- HTTPS 请求 工具