导读:操作步骤/方法【方法1】11.引用:access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效!2从公众平台获取账号的AppID和AppSecret;3token获...
操作步骤/方法
【方法1】
1
1.引用:access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效!
2
从公众平台获取账号的AppID和AppSecret;
3
token获取并解析存储执行体;
4
采用任务调度每隔两小时执行一次token获取执行体;
5
3.packagecom.cuiyongzhi.wechat.util;
6
importjava.io.BufferedInputStream;
7
importjava.io.BufferedReader;
8
importjava.io.IOException;
9
importjava.io.InputStream;
10
importjava.io.InputStreamReader;
11
importjava.io.OutputStreamWriter;
12
importjava.net.MalformedURLException;
13
importjava.net.URI;
14
importjava.net.URL;
15
importjava.net.URLConnection;
16
importjava.util.ArrayList;
17
importjava.util.List;
18
importjava.util.Map;
19
importjava.util.Set;
20
importjava.util.zip.GZIPInputStream;
21
importorg.apache.http.HttpResponse;
22
importorg.apache.http.NameValuePair;
23
importorg.apache.http.client.ClientProtocolException;
24
importorg.apache.http.client.HttpClient;
25
importorg.apache.http.client.entity.UrlEncodedFormEntity;
26
importorg.apache.http.client.methods.HttpGet;
27
importorg.apache.http.client.methods.HttpPost;
28
importorg.apache.http.entity.StringEntity;
29
importorg.apache.http.impl.client.DefaultHttpClient;
30
importorg.apache.http.message.BasicNameValuePair;
31
importorg.apache.http.protocol.HTTP;
32
importorg.apache.http.util.EntityUtils;
33
/**
34
*ClassName:HttpUtils
35
*
36
*@Description:http请求工具类
37
*@authordapengniao
38
*@date2016年3月10日下午3:57:14
39
*/
40
@SuppressWarnings("deprecation")
41
publicclassHttpUtils{
42
/**
43
*@Description:httpget请求共用方法
44
*@param@paramreqUrl
45
*@param@paramparams
46
*@param@return
47
*@param@throwsException
48
*@authordapengniao
49
*@date2016年3月10日下午3:57:39
50
*/
51
@SuppressWarnings("resource")
52
publicstaticStringsendGet(StringreqUrl,Map<String,String>params)
53
throwsException{
54
InputStreaminputStream=null;
55
HttpGetrequest=newHttpGet();
56
try{
57
Stringurl=buildUrl(reqUrl,params);
58
HttpClientclient=newDefaultHttpClient();
59
request.setHeader("Accept-Encong","gzip");
60
request.setURI(newURI(url));
61
HttpResponseresponse=client.execute(request);
62
inputStream=response.getEntity().getContent();
63
Stringresult=getJsonStringFromGZIP(inputStream);
64
returnresult;
65
}finally{
66
if(inputStream!=null){
67
inputStream.close();
68
}
69
request.releaseConnection();
70
}
71
}
72
/**
73
*@Description:httppost请求共用方法
74
*@param@paramreqUrl
75
*@param@paramparams
76
*@param@return
77
*@param@throwsException
78
*@authordapengniao
79
*@date2016年3月10日下午3:57:53
80
*/
81
@SuppressWarnings("resource")
82
publicstaticStringsendPost(StringreqUrl,Map<String,String>params)
83
throwsException{
84
try{
85
Set<String>set=params.keySet();
86
List<NameValuePair>list=newArrayList<NameValuePair>();
87
for(Stringkey:set){
88
list.add(newBasicNameValuePair(key,params.get(key)));
89
}
90
if(list.size()>0){
91
try{
92
HttpClientclient=newDefaultHttpClient();
93
HttpPostrequest=newHttpPost(reqUrl);
94
request.setHeader("Accept-Encoding","gzip");
95
request.setEntity(newUrlEncodedFormEntity(list,HTTP.UTF_8));
96
HttpResponseresponse=client.execute(request);
97
InputStreaminputStream=response.getEntity().getContent();
98
try{
99
Stringresult=getJsonStringFromGZIP(inputStream);
100
returnresult;
101
}finally{
102
inputStream.close();
103
}
104
}catch(Exceptionex){
105
ex.printStackTrace();
106
thrownewException("网络连接失败,请连接网络后再试");
107
}
108
}else{
109
thrownewException("参数不全,请稍后重试");
110
}
111
}catch(Exceptionex){
112
ex.printStackTrace();
113
thrownewException("发送未知异常");
114
}
115
}
116
/**
117
*@Description:httppost请求json数据
118
*@param@paramurls
119
*@param@paramparams
120
*@param@return
121
*@param@throwsClientProtocolException
122
*@param@throwsIOException
123
*@authordapengniao
124
*@date2016年3月10日下午3:58:15
125
*/
126
publicstaticStringsendPostBuffer(Stringurls,Stringparams)
127
throwsClientProtocolException,IOException{
128
HttpPostrequest=newHttpPost(urls);
129
StringEntityse=newStringEntity(params,HTTP.UTF_8);
130
request.setEntity(se);
131
//发送请求
132
@SuppressWarnings("resource")
133
HttpResponsehttpResponse=newDefaultHttpClient().execute(request);
134
//得到应答的字符串,这也是一个JSON格式保存的数据
135
StringretSrc=EntityUtils.toString(httpResponse.getEntity());
136
request.releaseConnection();
137
returnretSrc;
138
}
139
/**
140
*@Description:http请求发送xml内容
141
*@param@paramurlStr
142
*@param@paramxmlInfo
143
*@param@return
144
*@authordapengniao
145
*@date2016年3月10日下午3:58:32
146
*/
147
publicstaticStringsendXmlPost(StringurlStr,StringxmlInfo){
148
//xmlInfoxml具体字符串
149
try{
150
URLurl=newURL(urlStr);
151
URLConnectioncon=url.openConnection();
152
con.setDoOutput(true);
153
con.setRequestProperty("Pragma:","no-cache");
154
con.setRequestProperty("Cache-Control","no-cache");
155
con.setRequestProperty("Content-Type","text/xml");
156
OutputStreamWriterout=newOutputStreamWriter(
157
con.getOutputStream());
158
out.write(newString(xmlInfo.getBytes("utf-8")));
159
out.flush();
160
out.close();
161
BufferedReaderbr=newBufferedReader(newInputStreamReader(
162
con.getInputStream()));
163
Stringlines="";
164
for(Stringline=br.readLine();line!=null;line=br
165
.readLine()){
166
lines=lines+line;
167
}
168
returnlines;//返回请求结果
169
}catch(MalformedURLExceptione){
170
e.printStackTrace();
171
}catch(IOExceptione){
172
e.printStackTrace();
173
}
174
return"fail";
175
}
176
privatestaticStringgetJsonStringFromGZIP(InputStreamis){
177
StringjsonString=null;
178
try{
179
BufferedInputStreambis=newBufferedInputStream(is);
180
bis.mark(2);
181
//取前两个字节
182
byte[]header=newbyte[2];
183
intresult=bis.read(header);
184
//reset输入流到开始位置
185
bis.reset();
186
//判断是否是GZIP格式
187
intheaderData=getShort(header);
188
//Gzip流的前两个字节是0x1f8b
189
if(result!=-1&&headerData==0x1f8b){
190
//LogUtil.i("HttpTask","useGZIPInputStream");
191
is=newGZIPInputStream(bis);
192
}else{
193
//LogUtil.d("HttpTask","notuseGZIPInputStream");
194
is=bis;
195
}
196
InputStreamReaderreader=newInputStreamReader(is,"utf-8");
197
char[]data=newchar[100];
198
intreadSize;
199
StringBuffersb=newStringBuffer();
200
while((readSize=reader.read(data))>0){
201
sb.append(data,0,readSize);
202
}
203
jsonString=sb.toString();
204
bis.close();
205
reader.close();
206
}catch(Exceptione){
207
e.printStackTrace();
208
}
209
returnjsonString;
210
}
211
privatestaticintgetShort(byte[]data){
212
return(data[0]<<8)|data[1]&0xFF;
213
}
214
/**
215
*构建get方式的url
216
*
217
*@paramreqUrl
218
*基础的url地址
219
*@paramparams
220
*查询参数
221
*@return构建好的url
222
*/
223
publicstaticStringbuildUrl(StringreqUrl,Map<String,String>params){
224
StringBuilderquery=newStringBuilder();
225
Set<String>set=params.keySet();
226
for(Stringkey:set){
227
query.append(String.format("%s=%s&",key,params.get(key)));
228
}
229
returnreqUrl+"?"+query.toString();
230
}
231
}
232
4.packagecom.cuiyongzhi.web.start;
233
importjavax.servlet.ServletConfig;
234
importjavax.servlet.ServletException;
235
importjavax.servlet.http.HttpServlet;
236
/**
237
*ClassName:InterfaceUrlIntiServlet
238
*@Description:项目启动初始化servlet
239
*@authordapengniao
240
*@date2016年3月10日下午4:08:43
241
*/
242
publicclassInterfaceUrlIntiServletextendsHttpServlet{
243
privatestaticfinallongserialVersionUID=1L;
244
@Override
245
publicvoinit(ServletConfigconfig)throwsServletException{
246
InterfaceUrlInti.init();
247
}
248
}
249
5.packagecom.cuiyongzhi.web.start;
250
importjava.io.IOException;
251
importjava.io.InputStream;
252
importjava.util.Properties;
253
importcom.cuiyongzhi.web.util.GlobalConstants;
254
/**
255
*ClassName:InterfaceUrlInti
256
*@Description:项目启动初始化方法
257
*@authordapengniao
258
*@date2016年3月10日下午4:08:21
259
*/
260
publicclassInterfaceUrlInti{
261
publicsynchronizedstaticvoidinit(){
262
ClassLoadercl=Thread.currentThread().getContextClassLoader();
263
Propertiesprops=newProperties();
264
if(GlobalConstants.interfaceUrlProperties==null){
265
GlobalConstants.interfaceUrlProperties=newProperties();
266
}
267
InputStreamin=null;
268
try{
269
in=cl.getResourceAsStream("interface_url.properties");
270
props.load(in);
271
for(Objectkey:props.keySet()){
272
GlobalConstants.interfaceUrlProperties.put(key,props.get(key));
273
}
274
props=newProperties();
275
in=cl.getResourceAsStream("wechat.properties");
276
props.load(in);
277
for(Objectkey:props.keySet()){
278
GlobalConstants.interfaceUrlProperties.put(key,props.get(key));
279
}
280
}catch(IOExceptione){
281
e.printStackTrace();
282
}finally{
283
if(in!=null){
284
try{
285
in.close();
286
}catch(IOExceptione){
287
e.printStackTrace();
288
}
289
}
290
}
291
return;
292
}
293
}
END
以上就是小编为大家介绍的Java如何根据token获取一个用户的信息的全部内容,如果大家还对相关的内容感兴趣,请持续关注上海建站网!
标签:
内容声明:网站所展示的内容均由第三方用户投稿提供,内容的真实性、准确性和合法性均由发布用户负责。上海建站网对此不承担任何相关连带责任。上海建站网遵循相关法律法规严格审核相关关内容,如您发现页面有任何违法或侵权信息,欢迎向网站举报并提供有效线索,我们将认真核查、及时处理。感谢您的参与和支持!