当前位置: 首页 > 生活问答 > 生活百科 > Java如何根据token获取一个用户的信息

Java如何根据token获取一个用户的信息

网站编辑:上海建站网 发布时间:2022-04-23  点击数:
导读:操作步骤/方法【方法1】11.引用:access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效!2从公众平台获取账号的AppID和AppSecret;3token获...
Java如何根据token获取一个用户的信息

操作步骤/方法

【方法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获取一个用户的信息的全部内容,如果大家还对相关的内容感兴趣,请持续关注上海建站网!

  标签:
内容声明:网站所展示的内容均由第三方用户投稿提供,内容的真实性、准确性和合法性均由发布用户负责。上海建站网对此不承担任何相关连带责任。上海建站网遵循相关法律法规严格审核相关关内容,如您发现页面有任何违法或侵权信息,欢迎向网站举报并提供有效线索,我们将认真核查、及时处理。感谢您的参与和支持!
浏览此文的人还看过
如何修改默认的浏览器
如何修改默认的浏览器

详情:操作步骤/方法1首先,同时按住【win+i】打开设置页面,然......

地下城与勇士70级赚钱全面攻略
地下城与勇士70级赚钱全面攻略

详情:操作步骤/方法1【勤劳党类型】21出售PL(带人);这个不用......

预防近视的儿童画怎么画
预防近视的儿童画怎么画

详情:操作步骤/方法1画上一个小朋友正在玩沙子,玩完沙子之后,这个......

DNF累计在线得好礼活动如何参
DNF累计在线得好礼活动如何参

详情:操作步骤/方法1第一步:2游戏内右下角找到活动图标,游戏界面......