微信公众平台的Java的开发详解工程代码解析

  • 格式:docx
  • 大小:22.17 KB
  • 文档页数:9

下载文档原格式

  / 9
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

说明:

本次的教程主要是对微信公众平台开发者模式的讲解,网络上很多类似文章,但很多都让初学微信开发的人一头雾水,所以总结自己的微信开发经验,将微信开发的整个过程系统的列出,并对主要代码进行讲解分析,让初学者尽快上手。

在阅读本文之前,应对微信公众平台的官方开发文档有所了解,知道接收和发送的都是xml格式的数据。另外,在做内容回复时用到了,这是一个自然语言解析的开放平台,可以帮我们解决整个微信开发过程中最困难的问题,此处不多讲,下面会有其详细的调用方式。

在登录微信官方平台之后,开启开发者模式,此时需要我们填写url和token,所谓url就是我们自己服务器的接口,用来实现,相关解释已经在注释中说明,代码如下:

[java]

1.package;

2.import

3.import

4.import

5.import

6.import

7.import

8.import

9.import

10.import

11.import

12./**

13.*微信服务端收发消息接口

14.*

15.*@authorpamchen-1

16.*

17.*/

18.publicclass WechatServlet extends HttpServlet{

19./**

20.*ThedoGetmethodoftheservlet.

21.*

22.*Thismethodiscalledwhenaformhasitstagvaluemethodequalstoget.

23.*

24.*@paramrequest

25.*therequestsendbytheclienttotheserver

26.*@paramresponse

27.*theresponsesendbytheservertotheclient

28.*@throwsServletException

29.*ifanerroroccurred

30.*@throwsIOException

31.*ifanerroroccurred

32.*/

33.publicvoid doGet(HttpServletRequestrequest,HttpServletResponseresponse)

34.throws ServletException,IOException{

35.("UTF-8");

36.("UTF-8");

37./**读取接收到的xml消息*/

38.StringBuffersb=new StringBuffer();

39.InputStreamis=();

40.InputStreamReaderisr=new InputStreamReader(is,"UTF-8");

41.BufferedReaderbr=new BufferedReader(isr);

42.Strings="";

43.while((s=())!=null){

44.(s);

45.}

46.Stringxml=();rocessWechatMag(xml);

47.}

48.try{

49.OutputStreamos=();

50.("UTF-8"));

51.();

52.();

53.}catch(Exceptione){

54.();

55.}

56.}

57./**

58.*ThedoPostmethodoftheservlet.

59.*

60.*Thismethodiscalledwhenaformhasitstagvaluemethodequalsto

61.*post.

62.*

63.*@paramrequest

64.*therequestsendbytheclienttotheserver

65.*@paramresponse

66.*theresponsesendbytheservertotheclient

67.*@throwsServletException

68.*ifanerroroccurred

69.*@throwsIOException

70.*ifanerroroccurred

71.*/

72.publicvoid doPost(HttpServletRequestrequest,HttpServletResponseresponse)

73.throws ServletException,IOException{

74.doGet(request,response);

75.}

76.}

相应的配置信息如下,在生成的同时,可自动生成中的配置。前面所提到的url处可以填写例如:

1.http;etMsgEntity(xml);

2./**以文本消息为例,调用图灵机器人api接口,获取回复内容*/

3.Stringresult="";

4.if("text".endsWith())){

5.result=new TulingApiProcess().getTulingResult());

6.}

7./**此时,如果用户输入的是“你好”,在经过上面的过程之后,result为“你也好”类似的内容

8.*因为最终回复给微信的也是xml格式的数据,所有需要将其封装为文本类型返回消息

9.**/

10.result=new FormatXmlProcess().formatXmlAnswer(),(),result);

11.return result;

12.}

13.}

解析接收到的xml数据,此处有两个类,和,通过反射的机制动态调用实体类中的set 方法,可以避免很多重复的判断,提高代码效率,代码如下:

[java]

1.package;

2./**

3.*接收到的实体类

4.*@authorpamchen-1

5.*

6.*/

7.publicclass ReceiveXmlEntity{

8.private StringToUserName="";

9.private StringFromUserName="";

10.private StringCreateTime="";