感觉到微信的发展就是调用了微信接口,因此,当没有安排的工作时,我观察并尝试调用微信接口。调用微信接口需要发送http get和post请求。最好写一个httputil类,专门用于发送get和post请求,但是我的java网络编程不好,所以百度一些代码,然后封装了一些,可以正常使用,代码如下
其中的httpGet 和httpPost 用来发送get,和post请求,微信开发里面,消息接口一般是xml格式的,其他的接口上传和返回的数据一般是json,所以需要一个解析json的包,我用的是fastjson,当然也可以用gson
现在开始消息接口的测试,首先要了解请求过程:
微信服务器会根据填写的url发送get请求进行验证,当验证成功,还是根据url发送post请求,消息格式为xml格式
消息类型开发文档上有,主要有文本,图片,语音等消息,还有一些事件,如关注,点击,和跳转。
这些消息和事件是xml格式,所以要对xml格式的消息进行解析,我用的dom4j解析,
在之前验证接入的servlet的doPost方法解析消息,
我是按照柳峰的博客里面写的方法,写了个MessageUtil,里面封装了解析xml的方法,并把解析出来的结果放在map中,具体代码如下:
那么经过解析后的xml会按照 标签名 - 内容 保存在map中
然后可以从中取出消息类型msgType
String msgType = requestMap.get("MsgType");
然后判断消息的类型,不同的消息类型,让不同的servlet去处理,
不同的servlet里面处理不同的消息,可以根据需要返回不同的消息,返回消息的格式也是xml格式的,返回消息类型跟接受的消息类型基本类似,可以对这些返回的消息进行封装,每个xml标签对应字段名,内容就是字段的内容
例子:
省略了set,get方法
因为不同的消息有相同的字段,因此写了通用的基类。
现在离返回消息给用户还差一步,技术将这些pojo类转化为xml字符串
用的是xstream
这里只是简单的描述,具体的可以以看柳峰的博客,链接我忘记了,应该可以百度的到
最后将得到的string 返回给微信服务器就可以回复用户了。
只用这些消息接口就可以写一个简单的订阅号了,应该,一般公司的公众号好像是通过view类型的button跳到自己的网站里面去。
现在,您可以使用上面的界面接收用户发送的各种消息,然后转发该消息,您可以自己对其进行处理,或者调用一些API(例如天气,笑话,文章等)来获取结果,然后解析后,以您想要的格式返回它们用户可以练习诸如生活助手之类的订阅帐户,但是个人所应用的订阅帐户的权限是有限的,我不知道它是否可以胜任。
我来说两句