把字符串转化成对象.

{"access_token":"zTZFxLrhM1vHAjXmq1ymk1JT8nlOKja4urFIr9PWqLYvFH9ZbWo8R6BmQqUr7VbArzBoZWOfBNI_fYGlO37r5t9s5jeYlxXXg4UXISCz2G9fOWvwzrOM86e8rv9f1eSOGYVhAHAPHE","expires_in":7200}

这段是网络上给你返回回来的东西.gson.fromJson()之后是转化成一个对象

return "AccessToken [access_token=" + access_token + ", expires_in="+ expires_in + "]";
AccessToken [access_token=PQ_cs-BXBgspo0JNSlW_ytV3virET-nsK5muSsfVQ02qcp1dHDDK86dDWZ3WwDxMgT0_zqhCGaHq-Y1F6rjLXJnxN9d3EAThzkmtaMduYmXxAL98pt2a03HNAFXBESjjVVWdABARRS, expires_in=7200]

获得token之后首先是构建出来菜单的报文(JSON串).首先是要分析JSON串的组成方式.

定义菜单的Bean对象.Bean对象不是微信核心的东西.

菜单这一块是很复杂的,AccessToken.java是定义了的一个Bean,为什么要有token?因为菜单的参数需要token。菜单接口的参数需要token。

CaiDan也是一个Bean.WX_Info是保存微信的信息,获取token需要用的.WX_Token是得到token的信息。

这一块结合的东西多了,它要和token结合在一起使用。

创建菜单这一块和之前获得token都是网络操作,但是它们还是有区别的。

创建菜单需要传递token参数.

Sets the value of the doInput field for this URLConnection to the specified value.
A URL connection can be used for input and/or output. Set the DoInput flag to true if you intend to use the URL connection for input, false if not. The default is true.
package wx.util;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;import bean.caidan.CaiDan;public class WX_CaiDan {/** create菜单*///public static void createCaiDan() {//public static void create(String access_token,List<CaiDan> caiDanList)  {//token,public static String create(String access_token,List<CaiDan> caiDanList)  {//token,HttpURLConnection connection = null;StringBuffer strb =  new StringBuffer();try {URL url = new URL("https://api.weixin.qq.com/cgi-bin/menu/create?access_token="+access_token);connection= (HttpURLConnection)url.openConnection();connection.setDoOutput(true);connection.setRequestMethod("POST");OutputStream  out  =  connection.getOutputStream();OutputStreamWriter writer = new OutputStreamWriter(out);BufferedWriter bwriter = new BufferedWriter(writer);//?????????????????????????????bwriter.write("");bwriter.flush();InputStream in = connection.getInputStream();InputStreamReader reader =  new InputStreamReader(in);BufferedReader breader = new BufferedReader(reader);String str = null;while(null!=( str = breader.readLine())){strb.append(str);}out.close();writer.close();bwriter.close();in.close();reader.close();breader.close();} //catch (MalformedURLException e) {catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}//if(null!=connection){connection.disconnect();}//return access_token;return strb.toString();}
}
package bean.caidan;import java.util.List;public class CaiDan {//private String sub_button = null;//  否   二级菜单数组,个数应为1~5个private List<CaiDan> sub_button = null;//  否   二级菜单数组,个数应为1~5个private String type = null;//    是   菜单的响应动作类型,view表示网页类型,click表示点击类型,miniprogram表示小程序类型private String name = null;//  是   菜单标题,不超过16个字节,子菜单不超过60个字节private String key = null;//    click等点击类型必须    菜单KEY值,用于消息接口推送,不超过128字节private String url = null;// view、miniprogram类型必须    网页链接,用户点击菜单可打开链接,不超过1024字节。type为miniprogram时,不支持小程序的老版本客户端将打开本url。//media_id   media_id类型和view_limited类型必须 调用新增永久素材接口返回的合法media_id//appid//miniprogram类型必须 小程序的appid(仅认证公众号可配置)//pagepath//miniprogram类型必须   小程序的页面路径public List<CaiDan> getSub_button() {return sub_button;}public CaiDan() {super();// TODO Auto-generated constructor stub}
/*  public CaiDan(List<CaiDan> sub_button, String type, String name,String key, String url) {*/public CaiDan(String type, String name,String key, String url) {//super();//this.sub_button = sub_button;this.type = type;this.name = name;this.key = key;this.url = url;}public void setSub_button(List<CaiDan> sub_button) {this.sub_button = sub_button;}public String getType() {return type;}public void setType(String type) {this.type = type;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getKey() {return key;}public void setKey(String key) {this.key = key;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}}

12312312

转载于:https://my.oschina.net/u/3206447/blog/910183

微信公众平台深度开发JAVA版第一季 27.菜单3相关推荐

  1. 微信公众平台深度开发JAVA版第一季 30.菜单6

    {"button":[{ "type": "click", "name": "说明001", &qu ...

  2. 微信公众平台深度开发JAVA版第一季 22.微信猜数字活动4

    select count(*) from huo t where t.shuzi='0' 这个SQL语句查不查询得到记录取决于两个条件:第一个是数据库里面有没有这个数字,第二个是getCountByS ...

  3. 微信公众平台深度开发JAVA版第一季 15.响应被动消息3

    微信开发难度不大,但是逻辑关系很强. 这节课主要讲微信接口,至于在J2EE平台怎么把程序构造的更好不在这节课里面讨论. package net.wxinterface; import java.io. ...

  4. 微信公众平台深度开发JAVA版第一季 08.接收普通消息1

    上一节讲了开发的接口接入这一部分,这是非常重要的. 实现业务的逻辑应该写在POST方法这一块. GET是消息验证用的,验证接口那一块的. XML数据包:腾讯服务器传过来的数据是XML格式的传到你的业务 ...

  5. 微信公众平台深度开发JAVA版第一季 10.接收普通消息3

    获取到从腾讯服务器过来的字符串,业务服务器可以拼接出来可以打印出来.后续的工作是把这个字符串封装成一个Bean对象. <xml><ToUserName><![CDATA[ ...

  6. 微信公众平台深度开发JAVA版第一季 14.响应被动消息2

    好的程序是重构出来的.要recode7次. package net.wxinterface; import java.io.BufferedReader; import java.io.Buffere ...

  7. 微信公众平台深度开发JAVA版第一季 16.响应被动消息4

    回复视频消息不成功,不知道为什么.是因为视频上传不成功吗? package wx.out;import java.util.Date; import java.util.List;import wx. ...

  8. 视频教程-微信公众平台深度开发v2.0第3季——二维码、模板消息-微信开发

    微信公众平台深度开发v2.0第3季--二维码.模板消息 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试(软考) ...

  9. 视频教程-微信公众平台深度开发v2.0第6季——微信WEB开发、手机WEB技术-微信开发

    微信公众平台深度开发v2.0第6季--微信WEB开发.手机WEB技术 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资 ...

最新文章

  1. windows 7 可以清除的文件
  2. 智能车竞赛技术报告 | 节能信标组-哈尔滨工业大学紫丁香五队
  3. 利用位运算和指针实现的交换两个数的程序
  4. DL-3利用MNIST搭建神经网络模型(三种方法):1.用CNN 2.用CNN+RNN 3.用自编码网络autoencoder
  5. mybatis中使用XML配置文件方式实现CRUD模板流程
  6. 为梦想而战,高考励志主题教育班会PPT
  7. 浅谈malloc,calloc,realloc函数之间的区别
  8. python网络编程-socket编程
  9. 产品观念:更好的捕鼠器_故事很重要:为什么您需要成为更好的讲故事的人
  10. 数字逻辑要不要认真学_认真认真
  11. python类属性数据三维图_Python图表属性
  12. fhq-treap模板
  13. 《剑指Offer》面试题5-替换空格
  14. html5之websql深入理解
  15. Java8 Stream list转map及问题解决
  16. python如何打开npy文件_操作python如何实现npy格式文件转换为txt文件
  17. Soul app产品分析报告
  18. 前端性能优化之WebP图片
  19. 图和两种遍历,Saving James Bond
  20. 画论25 黄休复《益州名画录》

热门文章

  1. 阿里云媒体转码处理方式
  2. 轮转数组 (java)
  3. 如何在linux系统中还原系统版本,系统还原也简单 常用Linux系统还原工具推荐
  4. JavaSE-09 Thread 多线程
  5. 做了一个用友导出excel转为金三导入excel的软件
  6. 对wifi辐射的重新解读
  7. 推荐算法基础--矩阵奇异值分解svd
  8. MDDR:Multimodal Dialogue Dense Retriever模型
  9. Java后端技术精选优秀博文
  10. 在线制作版画式logo教程