init project
This commit is contained in:
22
common/pom.xml
Normal file
22
common/pom.xml
Normal file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>forever</artifactId>
|
||||
<groupId>com.love.qn</groupId>
|
||||
<version>1.0.0</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<version>${version}</version>
|
||||
<artifactId>common</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpclient</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
154
common/src/main/java/com/qn/utils/HTTPUtils.java
Normal file
154
common/src/main/java/com/qn/utils/HTTPUtils.java
Normal file
@@ -0,0 +1,154 @@
|
||||
package com.qn.utils;
|
||||
|
||||
import org.apache.http.NameValuePair;
|
||||
import org.apache.http.client.entity.UrlEncodedFormEntity;
|
||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.client.methods.HttpPost;
|
||||
import org.apache.http.client.utils.URIBuilder;
|
||||
import org.apache.http.entity.ContentType;
|
||||
import org.apache.http.entity.StringEntity;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
import org.apache.http.message.BasicNameValuePair;
|
||||
import org.apache.http.util.EntityUtils;
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class HTTPUtils {
|
||||
|
||||
public static String doGet(String url, Map<String, String> param) {
|
||||
// 创建Httpclient对象
|
||||
CloseableHttpClient httpclient = HttpClients.createDefault();
|
||||
String resultString = "";
|
||||
CloseableHttpResponse response = null;
|
||||
try {
|
||||
// 创建uri
|
||||
URIBuilder builder = new URIBuilder(url);
|
||||
if (param != null) {
|
||||
for (String key : param.keySet()) {
|
||||
builder.addParameter(key, param.get(key));
|
||||
}
|
||||
}
|
||||
URI uri = builder.build();
|
||||
// 创建http GET请求
|
||||
HttpGet httpGet = new HttpGet(uri);
|
||||
// 执行请求
|
||||
response = httpclient.execute(httpGet);
|
||||
// 判断返回状态是否为200
|
||||
if (response.getStatusLine().getStatusCode() == 200) {
|
||||
resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
try {
|
||||
if (response != null) {
|
||||
response.close();
|
||||
}
|
||||
httpclient.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return resultString;
|
||||
}
|
||||
|
||||
public static String doGet(String url) {
|
||||
return doGet(url, null);
|
||||
}
|
||||
|
||||
public static String doPost(String url, Map<String, String> param) {
|
||||
// 创建Httpclient对象
|
||||
CloseableHttpClient httpClient = HttpClients.createDefault();
|
||||
CloseableHttpResponse response = null;
|
||||
String resultString = "";
|
||||
try {
|
||||
// 创建Http Post请求
|
||||
HttpPost httpPost = new HttpPost(url);
|
||||
// 创建参数列表
|
||||
if (param != null) {
|
||||
List<NameValuePair> paramList = new ArrayList<>();
|
||||
for (String key : param.keySet()) {
|
||||
paramList.add(new BasicNameValuePair(key, param.get(key)));
|
||||
}
|
||||
// 模拟表单
|
||||
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList,"utf-8");
|
||||
httpPost.setEntity(entity);
|
||||
}
|
||||
// 执行http请求
|
||||
response = httpClient.execute(httpPost);
|
||||
resultString = EntityUtils.toString(response.getEntity(), "utf-8");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
try {
|
||||
response.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return resultString;
|
||||
}
|
||||
|
||||
public static String doPost(String url) {
|
||||
return doPost(url, null);
|
||||
}
|
||||
|
||||
public static String doPostJson(String url, String json) {
|
||||
// 创建Httpclient对象
|
||||
CloseableHttpClient httpClient = HttpClients.createDefault();
|
||||
CloseableHttpResponse response = null;
|
||||
String resultString = "";
|
||||
try {
|
||||
// 创建Http Post请求
|
||||
HttpPost httpPost = new HttpPost(url);
|
||||
// 创建请求内容
|
||||
StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);
|
||||
httpPost.setEntity(entity);
|
||||
// 执行http请求
|
||||
response = httpClient.execute(httpPost);
|
||||
resultString = EntityUtils.toString(response.getEntity(), "utf-8");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
try {
|
||||
response.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
return resultString;
|
||||
}
|
||||
|
||||
public static String doPostXml(String url, String json) {
|
||||
// 创建Httpclient对象
|
||||
CloseableHttpClient httpClient = HttpClients.createDefault();
|
||||
CloseableHttpResponse response = null;
|
||||
String resultString = "";
|
||||
try {
|
||||
// 创建Http Post请求
|
||||
HttpPost httpPost = new HttpPost(url);
|
||||
// 创建请求内容
|
||||
StringEntity entity = new StringEntity(json, ContentType.APPLICATION_XML);
|
||||
httpPost.setEntity(entity);
|
||||
// 执行http请求
|
||||
response = httpClient.execute(httpPost);
|
||||
resultString = EntityUtils.toString(response.getEntity(), "utf-8");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
try {
|
||||
response.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return resultString;
|
||||
}
|
||||
|
||||
}
|
||||
75
common/src/main/java/com/qn/utils/SignUtils.java
Normal file
75
common/src/main/java/com/qn/utils/SignUtils.java
Normal file
@@ -0,0 +1,75 @@
|
||||
package com.qn.utils;
|
||||
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.Arrays;
|
||||
|
||||
public class SignUtils {
|
||||
|
||||
private static String token = "wxTokenfromqnforever";//这里是自定义的token,需和你提交的token一致
|
||||
|
||||
/**
|
||||
* 校验签名
|
||||
*
|
||||
* @param signature
|
||||
* 签名
|
||||
* @param timestamp
|
||||
* 时间戳
|
||||
* @param nonce
|
||||
* 随机数
|
||||
* @return 布尔值
|
||||
*/
|
||||
public static boolean checkSignature(String signature, String timestamp, String nonce) {
|
||||
String checktext = null;
|
||||
if (null != signature) {
|
||||
// 对ToKen,timestamp,nonce 按字典排序
|
||||
String[] paramArr = new String[] { token, timestamp, nonce };
|
||||
Arrays.sort(paramArr);
|
||||
// 将排序后的结果拼成一个字符串
|
||||
String content = paramArr[0].concat(paramArr[1]).concat(paramArr[2]);
|
||||
|
||||
try {
|
||||
MessageDigest md = MessageDigest.getInstance("SHA-1");
|
||||
// 对接后的字符串进行sha1加密
|
||||
byte[] digest = md.digest(content.toString().getBytes());
|
||||
checktext = byteToStr(digest);
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
// 将加密后的字符串与signature进行对比
|
||||
return checktext != null ? checktext.equals(signature.toUpperCase()) : false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将字节数组转化为16进制字符串
|
||||
*
|
||||
* @param byteArrays
|
||||
* 字符数组
|
||||
* @return 字符串
|
||||
*/
|
||||
private static String byteToStr(byte[] byteArrays) {
|
||||
String str = "";
|
||||
for (int i = 0; i < byteArrays.length; i++) {
|
||||
str += byteToHexStr(byteArrays[i]);
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将字节转化为十六进制字符串
|
||||
*
|
||||
* @param myByte
|
||||
* 字节
|
||||
* @return 字符串
|
||||
*/
|
||||
private static String byteToHexStr(byte myByte) {
|
||||
char[] Digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
|
||||
char[] tampArr = new char[2];
|
||||
tampArr[0] = Digit[(myByte >>> 4) & 0X0F];
|
||||
tampArr[1] = Digit[myByte & 0X0F];
|
||||
String str = new String(tampArr);
|
||||
return str;
|
||||
}
|
||||
|
||||
}
|
||||
63
common/src/main/java/model/wx/TextMessage.java
Normal file
63
common/src/main/java/model/wx/TextMessage.java
Normal file
@@ -0,0 +1,63 @@
|
||||
package model.wx;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class TextMessage implements Serializable {
|
||||
private String ToUserName;
|
||||
|
||||
private String FromUserName;
|
||||
|
||||
private Long CreateTime;
|
||||
|
||||
private String MsgType;
|
||||
private String Content;
|
||||
private String MsgId;
|
||||
|
||||
public String getToUserName() {
|
||||
return ToUserName;
|
||||
}
|
||||
|
||||
public void setToUserName(String toUserName) {
|
||||
ToUserName = toUserName;
|
||||
}
|
||||
|
||||
public String getFromUserName() {
|
||||
return FromUserName;
|
||||
}
|
||||
|
||||
public void setFromUserName(String fromUserName) {
|
||||
FromUserName = fromUserName;
|
||||
}
|
||||
|
||||
public Long getCreateTime() {
|
||||
return CreateTime;
|
||||
}
|
||||
|
||||
public void setCreateTime(Long createTime) {
|
||||
CreateTime = createTime;
|
||||
}
|
||||
|
||||
public String getMsgType() {
|
||||
return MsgType;
|
||||
}
|
||||
|
||||
public void setMsgType(String msgType) {
|
||||
MsgType = msgType;
|
||||
}
|
||||
|
||||
public String getContent() {
|
||||
return Content;
|
||||
}
|
||||
|
||||
public void setContent(String content) {
|
||||
Content = content;
|
||||
}
|
||||
|
||||
public String getMsgId() {
|
||||
return MsgId;
|
||||
}
|
||||
|
||||
public void setMsgId(String msgId) {
|
||||
MsgId = msgId;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user