package com.baimi.routerweb.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 javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import net.sf.json.JSONException;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.baimi.routerweb.common.Constant;
import com.baimi.routerweb.entity.AccessToken;
public class HttpUtil {
private static Logger log = LoggerFactory.getLogger(HttpUtil.class);
/**
* 发起https请求并获取结果
*
* @param requestUrl
* 请求地址
* @param requestMethod
* 请求方式(GET、POST)
* @param outputStr
* 提交的数据
* @return JSONObject(通过JSONObject.get(key)的方式获取json对象的属性值)
*/
public static JSONObject httpRequest(String requestUrl,
String requestMethod, String outputStr) {
JSONObject jsonObject = null;
StringBuffer buffer = new StringBuffer();
try {
// 创建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);
System.setProperty("java.protocol.handler.pkgs", "javax.net.ssl");
HostnameVerifier hv = new HostnameVerifier() {
public boolean verify(String urlHostName, SSLSession session) {
return urlHostName.equals(session.getPeerHost());
}
};
HttpsURLConnection.setDefaultHostnameVerifier(hv);
HttpsURLConnection httpUrlConn = (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) {
OutputStream outputStream = httpUrlConn.getOutputStream();
// 注意编码格式,防止中文乱码
outputStream.write(outputStr.getBytes("UTF-8"));
outputStream.close();
}
// 将返回的输入流转换成字符串
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();
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 jsonObject;
}
/**
* 发起http请求并获取结果
*
* @param requestUrl
* 请求地址
* @param requestMethod
* 请求方式(GET、POST)
* @param outputStr
* 提交的数据
* @return JSONObject(通过JSONObject.get(key)的方式获取json对象的属性值)
*/
public static JSONObject httpNormalRequest(String requestUrl,
String requestMethod, String outputStr) {
JSONObject jsonObject = null;
StringBuffer buffer = new StringBuffer();
try {
URL url = new URL(requestUrl);
HttpURLConnection httpUrlConn = (HttpURLConnection) url
.openConnection();
httpUrlConn.setDoOutput(true);
httpUrlConn.setDoInput(true);
httpUrlConn.setUseCaches(false);
// 设置请求方式(GET/POST)
httpUrlConn.setRequestMethod(requestMethod);
if ("GET".equalsIgnoreCase(requestMethod))
httpUrlConn.connect();
// 当有数据需要提交时
if (null != outputStr) {
OutputStream outputStream = httpUrlConn.getOutputStream();
// 注意编码格式,防止中文乱码
outputStream.write(outputStr.getBytes("UTF-8"));
outputStream.close();
}
// 将返回的输入流转换成字符串
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();
jsonObject = JSONObject.fromObject(buffer.toString());
} catch (ConnectException ce) {
log.error("Weixin server connection timed out.");
} catch (Exception e) {
log.error("http request error:{}", e);
}
return jsonObject;
}
/**
* 获取access_token
*
* @param appid
* 凭证
* @param appsecret
* 密钥
* @return
*/
public static AccessToken getAccessToken() {
AccessToken accessToken = null;
String requestUrl = Constant.URL_ACCESS_TOKEN;
JSONObject jsonObject = httpRequest(requestUrl, "GET", null);
// 如果请求成功
if (null != jsonObject) {
try {
accessToken = new AccessToken();
accessToken.setToken(jsonObject.getString("access_token"));
accessToken.setExpiresIn(jsonObject.getInt("expires_in"));
} catch (JSONException e) {
accessToken = null;
// 获取token失败
log.error("获取token失败 errcode:{} errmsg:{}",
jsonObject.getInt("errcode"),
jsonObject.getString("errmsg"));
}
}
return accessToken;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Spring+SpringMVC+Mybatis多数据源
共171个文件
svn-base:79个
jar:39个
class:14个
5星 · 超过95%的资源 需积分: 49 1.4k 下载量 177 浏览量
2015-12-15
15:14:18
上传
评论 28
收藏 42.6MB RAR 举报
温馨提示
Spring+SpringMVC+Mybatis多数据源整合。基于spring3.0和mybatis3.2的
资源推荐
资源详情
资源评论
收起资源包目录
Spring+SpringMVC+Mybatis多数据源 (171个子文件)
HttpUtil.class 6KB
User.class 3KB
MainController.class 3KB
ErrorHandle.class 1KB
DataSourceContextHolder.class 1002B
UserServiceImpl.class 950B
HttpUtil$1.class 907B
MyX509TrustManager.class 898B
DynamicDataSource.class 782B
AccessToken.class 779B
Constant.class 660B
DataSourceType.class 501B
UserService.class 205B
UserMapper.class 202B
.classpath 770B
org.eclipse.wst.common.component 465B
org.eclipse.wst.jsdt.ui.superType.container 49B
wc.db 94KB
entries 3B
format 3B
aspectj-1.6.12.jar 12.3MB
aspectjweaver-1.6.2.jar 1.47MB
mysql-connector-java-5.1.20-bin.jar 784KB
mybatis-3.2.6.jar 696KB
org.springframework.context-3.0.5.RELEASE.jar 653KB
commons-collections-3.2.jar 558KB
org.springframework.beans-3.0.5.RELEASE.jar 542KB
log4j-1.2.16.jar 470KB
org.springframework.web.servlet-3.0.5.RELEASE.jar 409KB
jstl-1.2.jar 405KB
org.springframework.web-3.0.5.RELEASE.jar 386KB
org.springframework.jdbc-3.0.5.RELEASE.jar 377KB
org.springframework.core-3.0.5.RELEASE.jar 373KB
org.springframework.orm-3.0.5.RELEASE.jar 326KB
cglib-nodep-2.2.3.jar 315KB
org.springframework.aop-3.0.5.RELEASE.jar 314KB
commons-lang-2.4.jar 256KB
org.springframework.transaction-3.0.5.RELEASE.jar 226KB
org.springframework.test-3.0.5.RELEASE.jar 200KB
commons-beanutils-1.7.0.jar 184KB
org.springframework.jms-3.0.5.RELEASE.jar 181KB
org.springframework.web.portlet-3.0.5.RELEASE.jar 171KB
org.springframework.expression-3.0.5.RELEASE.jar 166KB
commons-dbcp-1.4.jar 157KB
json-lib-2.2.2-jdk15.jar 141KB
commons-pool-1.6.jar 109KB
org.springframework.context.support-3.0.5.RELEASE.jar 99KB
ezmorph-1.0.4.jar 84KB
org.springframework.oxm-3.0.5.RELEASE.jar 60KB
commons-logging-1.1.1.jar 59KB
org.springframework.asm-3.0.5.RELEASE.jar 52KB
mybatis-spring-1.1.1.jar 40KB
org.springframework.aspects-3.0.5.RELEASE.jar 35KB
org.springframework.web.struts-3.0.5.RELEASE.jar 31KB
slf4j-api-1.6.1.jar 25KB
slf4j-log4j12-1.6.1.jar 10KB
org.springframework.instrument.tomcat-3.0.5.RELEASE.jar 6KB
aopalliance-1.0.jar 4KB
org.springframework.instrument-3.0.5.RELEASE.jar 2KB
HttpUtil.java 6KB
MainController.java 2KB
User.java 2KB
MyX509TrustManager.java 769B
ErrorHandle.java 753B
UserServiceImpl.java 696B
DataSourceContextHolder.java 560B
Constant.java 541B
AccessToken.java 540B
DynamicDataSource.java 505B
DataSourceType.java 496B
UserService.java 161B
UserMapper.java 159B
.jsdtscope 500B
index.jsp 834B
MANIFEST.MF 36B
.mymetadata 300B
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.jdt.core.prefs 395B
com.genuitec.eclipse.ws.prefs 109B
org.eclipse.core.resources.prefs 88B
.project 2KB
log4j.properties 429B
log4j.properties 429B
cd442052a76f3f242a3df972deb7a222d836bc8e.svn-base 12.3MB
bd339cb5da04e68d2b69028b5be5750e97b8f963.svn-base 1.47MB
66a2a9c6561dc2c3c6f0b924681c305be78f3377.svn-base 784KB
a5edfad4c89131fe2e7b6eb10029bdc636b529f3.svn-base 696KB
6b05e397566cc7750d2d25f81a7441fe1aeecb75.svn-base 653KB
f951934aa5ae5a88d7e6dfaa6d32307d834a88be.svn-base 558KB
4b352a9c3b427294e264ca4d460d07417ca9350e.svn-base 542KB
7999a63bfccbc7c247a9aea10d83d4272bd492c6.svn-base 470KB
8b1c7176edb4a7e5381ffc5a398a5e2e8ed88909.svn-base 409KB
74aca283cd4f4b4f3e425f5820cda58f44409547.svn-base 405KB
d5c550739c4c0cb7ca527ef46c9aed72fb215eee.svn-base 386KB
2af0bad1d8d681ed2e014b684287acc448ab30cb.svn-base 377KB
1633e94943d57746ef76910489f1cd71fe667e04.svn-base 373KB
cff2c955d1a510bab6e1eb2d1ced309f6ec37ce9.svn-base 326KB
6a4af5d9112066a5baf235fd55d5876969bc813c.svn-base 315KB
0c7a17803cc10512e26e285073639543f0c7c764.svn-base 314KB
16313e02a793435009f1e458fa4af5d879f6fb11.svn-base 256KB
共 171 条
- 1
- 2
townkoim
- 粉丝: 116
- 资源: 21
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页