ApiUtils.java
3.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
package com.jflyfox.api.util;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
import com.jflyfox.api.constant.ApiConstant;
import com.jflyfox.api.form.ApiResp;
import com.jflyfox.api.form.ApiForm;
import com.jflyfox.api.service.IApiLogic;
import com.jflyfox.api.service.impl.ApiV100Logic;
import com.jflyfox.api.service.impl.ApiV101Logic;
import com.jflyfox.util.encrypt.Base64;
import com.jflyfox.util.encrypt.Md5Utils;
public class ApiUtils {
private static final Map<String, IApiLogic> map = new HashMap<String, IApiLogic>();
/**
* 调试日志
*/
public static boolean DEBUG = false;
static {
addApi("1.0.0", new ApiV100Logic());
addApi("1.0.1", new ApiV101Logic());
}
public static void addApi(String version, IApiLogic apiLogic) {
map.put(version, apiLogic);
}
public static IApiLogic getApiLogic(ApiForm form) {
return map.get(form.getVersion());
}
/**
* api关闭resp
*
* 2016年9月29日 上午11:44:38 flyfox 369191470@qq.com
*
* @return
*/
public static ApiResp getServerMaintain(ApiForm form) {
return new ApiResp(null).setCode(ApiConstant.CODE_SERVER_MAINTAIN).setMsg(ApiConstant.MSG_SERVER_MAINTAIN);
}
/**
* 版本错误返回resp
*
* 2016年9月29日 上午11:44:38 flyfox 369191470@qq.com
*
* @return
*/
public static ApiResp getVersionErrorResp(ApiForm form) {
return new ApiResp(null).setCode(ApiConstant.CODE_VERSION_ERROR).setMsg(ApiConstant.MSG_VERSION_ERROR);
}
/**
* ip黑名单返回resp
*
* 2016年9月29日 上午11:44:38 flyfox 369191470@qq.com
*
* @return
*/
public static ApiResp getIpBlackResp(ApiForm form) {
return new ApiResp(null).setCode(ApiConstant.CODE_IP_BLACK).setMsg(ApiConstant.MSG_IP_BLACK);
}
/**
* 调用方法不存在resp
*
* 2016年9月29日 上午11:44:38 flyfox 369191470@qq.com
*
* @return
*/
public static ApiResp getMethodError(ApiForm form) {
return new ApiResp(form).setCode(ApiConstant.CODE_METHOD_ERROR).setMsg(ApiConstant.MSG_METHOD_ERROR);
}
/**
* 调用方法异常resp
*
* 2016年9月29日 上午11:44:38 flyfox 369191470@qq.com
*
* @return
*/
public static ApiResp getMethodHandlerError(ApiForm form) {
return new ApiResp(form).setCode(ApiConstant.CODE_METHOD_HANDLER_ERROR).setMsg(
ApiConstant.MSG_METHOD_HANDLER_ERROR);
}
/**
* 解码
*
* 2017年3月15日 下午1:49:09
* flyfox 330627517@qq.com
* @param params
* @return
* @throws UnsupportedEncodingException
*/
public static String decode(String params) throws UnsupportedEncodingException {
params = URLDecoder.decode(params, "utf-8");
params = new String(Base64.decodeBase64(params.getBytes("utf-8")), "utf-8");
return params;
}
/**
* 编码
*
* 2017年3月15日 下午1:49:09
* flyfox 330627517@qq.com
* @param params
* @return
* @throws UnsupportedEncodingException
*/
public static String encode(String params) throws UnsupportedEncodingException {
params = new String(Base64.encodeBase64(params.getBytes("utf-8")), "utf-8");
params = URLEncoder.encode(params, "utf-8");
return params;
}
/**
* 获取验证sign
*
* 2017年3月15日 下午3:14:27
* flyfox 330627517@qq.com
* @param paramMaps
* @param key
* @return
*/
public static String getSign(TreeMap<String, String> paramMaps, String key) {
// 原始请求串
StringBuffer src = new StringBuffer();
for (Map.Entry<String, String> entry : paramMaps.entrySet()) {
src.append(entry.getKey() + "=" + entry.getValue() + "&");
}
// 待加密串
src.append("key=").append(key == null ? "" : key);
System.out.println("#####"+src.toString());
// 生成签名
String serverSign = new Md5Utils().getMD5(src.toString()).toUpperCase();
return serverSign;
}
}