老師說的那個(gè)參數(shù)有問題是不是老師理解有誤啊......
老師所說的location_select是一個(gè)自定義菜單事件推送(準(zhǔn)確的說是彈出地理位置選擇器的事件推送)
而老師去debug時(shí)并不是通過點(diǎn)擊自定義菜單去發(fā)送位置消息,應(yīng)該是通過聊天框最右邊的“+”號里的“位置”去發(fā)送的位置消息
而這樣的話,微信服務(wù)器返回的就是一個(gè)普通的地理位置消息的xml數(shù)據(jù),并不是自定義菜單事件推送里的,彈出地理位置選擇器的事件的xml數(shù)據(jù),而老師在視頻里是用這兩個(gè)不同的事件去做對比的,這兩個(gè)事件所返回的xml數(shù)據(jù)包是不同的,所以老師是不是誤會了?
然后我自己通過在下面這個(gè)方法中的一個(gè)輸出語句去遍歷map中的值,就是那個(gè)循環(huán)里的輸出語句,(因?yàn)槲也粫ebug....)
public?static?Map<String,String>?xmlToMap(HttpServletRequest?request) ????????throws?IOException,?DocumentException?{ ????Map<String,String>?map?=?new?HashMap<String,?String>(); ????SAXReader?reader?=?new?SAXReader(); ????InputStream?ins?=?request.getInputStream(); ????Document?doc?=?reader.read(ins); ????Element?root?=?doc.getRootElement(); ????List<Element>?list?=?root.elements(); ????for?(Element?e:list)?{ ????????map.put(e.getName(),e.getText()); ????????System.out.println(e.getName()+"-->"+e.getText()); ????} ????ins.close(); ????return?map; }
我是通過點(diǎn)擊我自己創(chuàng)建的自定義菜單中的地理位置選擇器去發(fā)送位置的,不是老師那樣,然后得到了下面這段輸出,下面的那一段就是普通的位置消息的數(shù)據(jù),與開發(fā)文檔中的都可以對得上,而上面這一段與自定義菜單的位置事件消息的數(shù)據(jù),能對得上前面幾個(gè),而后邊的幾個(gè)就是沒有了,我就一臉懵逼了....
請大佬們指出哪里有問題,還是說我理解得不對,都請指出,不勝感激?。▉碜砸粋€(gè)很白很白的小白..)
2019-07-05
我的按照老師的寫的,兩種方式都可以,但是在調(diào)試的時(shí)候一開始是不可以的,和樓主的問題一樣,也是先改為了location_select,但是拿不到這個(gè)集合里沒有Lable的值,我又改回location后,不用debug可以成功,不知道為啥。
2019-03-31
[ INFO ] - [ servlet.WeixinServlet.doPost(WeixinServlet.java:55) ] {Location_X=40.067593, CreateTime=1554020443, Location_Y=116.327114, Label=北京市北京回龍觀萬龍社區(qū)(萬龍社區(qū)16號), Scale=15, ToUserName=gh_3aaa50434c4f, FromUserName=oeA6ZuEqWJ65v1_PYcxpyfcIi3NQ, MsgType=location, MsgId=22248223037388133}
[ INFO ] - [ servlet.WeixinServlet.doPost(WeixinServlet.java:55) ] {CreateTime=1554020443, EventKey=13, SendLocationInfo=, Event=location_select, ToUserName=gh_3aaa50434c4f, FromUserName=oeA6ZuEqWJ65v1_PYcxpyfcIi3NQ, MsgType=event}
同時(shí)收到的兩個(gè)動作,第一個(gè)是接收的普通位置信息,第二個(gè)才是點(diǎn)擊地理位置選擇器的事件(參數(shù)對不上)
2019-03-31
location_select:彈出地理位置選擇器的事件推送的參數(shù)的確是有問題的。
老師的講解也是有問題的,點(diǎn)擊地理位置選擇器并發(fā)送位置是兩個(gè)動作同時(shí)回傳服務(wù)器的(點(diǎn)擊位置的事件參數(shù)的確是和文檔對不上的;位置消息沒有問題),老師將位置信息參數(shù)當(dāng)成了位置事件的參數(shù)
2018-12-17