通过阅读微信开发者文档会发现——>access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。

Java 微信公众号(二)——获取access_token

在获取access_token时使用的是get请求,那么也就是说我们需要在通过httpclient发送以个get请求Java 微信公众号(二)——获取access_token

最后返回的是一个json格式

下面直接贴入代码Java 微信公众号(二)——获取access_token

此时已经可以获取到access_token了,但是还不满足我们的开发使用,因为在微信对于access_token有时间要求,access_token会在两个小时后失效,并且一天只能调用2000次,所以我们需要对代码进行一个封装,下面是真正使用的

  1. package com.website.commons.web.utils;
  2. import java.io.IOException;
  3. import org.apache.http.HttpResponse;
  4. import org.apache.http.HttpStatus;
  5. import org.apache.http.client.ClientProtocolException;
  6. import org.apache.http.client.HttpClient;
  7. import org.apache.http.client.methods.HttpGet;
  8. import org.apache.http.impl.client.DefaultHttpClient;
  9. import org.apache.http.util.EntityUtils;
  10. import org.json.JSONObject;
  11. public class Constant {
  12. public static final String APPID = "你的APPID";
  13. public static final String APPSECRET = "你的APPSECRET";
  14. /**全局token 所有与微信有交互的前提 */
  15. public static String ACCESS_TOKEN;
  16. /**全局token上次获取事件 */
  17. public static long LASTTOKENTIME;
  18. /**
  19. * 获取全局token方法
  20. * 该方法通过使用HttpClient发送http请求,HttpGet()发送请求
  21. * 微信返回的json中access_token是我们的全局token
  22. */
  23. public static synchronized void getAccess_token(){
  24. if(ACCESS_TOKEN == null || System.currentTimeMillis() - LASTTOKENTIME > 7000*1000){
  25. try {
  26. //请求access_token地址
  27. String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx9c3336b0bdb29172&secret=e22ea5453c6c10326045a00112c873f4";
  28. //创建提交方式
  29. HttpGet httpGet = new HttpGet(url);
  30. //获取到httpclien
  31. HttpClient httpClient = new DefaultHttpClient();
  32. //发送请求并得到响应
  33. HttpResponse response = httpClient.execute(httpGet);
  34. //判断请求是否成功
  35. if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
  36. //将得到的响应转为String类型
  37. String str = EntityUtils.toString(response.getEntity(), "utf-8");
  38. //字符串转json
  39. JSONObject jsonObject = new JSONObject(str);
  40. //输出access_token
  41. System.out.println((String) jsonObject.get("access_token"));
  42. //给静态变量赋值,获取到access_token
  43. ACCESS_TOKEN = (String) jsonObject.get("access_token");
  44. //给获取access_token时间赋值,方便下此次获取时进行判断
  45. LASTTOKENTIME = System.currentTimeMillis();
  46. }
  47. } catch (ClientProtocolException e) {
  48. // TODO Auto-generated catch block
  49. e.printStackTrace();
  50. } catch (IOException e) {
  51. // TODO Auto-generated catch block
  52. e.printStackTrace();
  53. }
  54. }
  55. }
  56. public static void main(String[] args) {
  57. getAccess_token();
  58. }
  59. }
ok!代码完工,根据大家的编码风格可以做改动

				<script>
					(function(){
						function setArticleH(btnReadmore,posi){
							var winH = $(window).height();
							var articleBox = $("div.article_content");
							var artH = articleBox.height();
							if(artH > winH*posi){
								articleBox.css({
									'height':winH*posi+'px',
									'overflow':'hidden'
								})
								btnReadmore.click(function(){
									articleBox.removeAttr("style");
									$(this).parent().remove();
								})
							}else{
								btnReadmore.parent().remove();
							}
						}
						var btnReadmore = $("#btn-readmore");
						if(btnReadmore.length>0){
							if(currentUserName){
								setArticleH(btnReadmore,3);
							}else{
								setArticleH(btnReadmore,1.2);
							}
						}
					})()
				</script>
				</article>

相关文章:

  • 2021-07-31
  • 2021-12-04
  • 2021-12-04
  • 2021-12-04
  • 2021-05-01
  • 2022-01-03
  • 2021-12-25
猜你喜欢
  • 2021-12-14
  • 2022-12-23
  • 2021-12-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-04
相关资源
相似解决方案