程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java開辟微信號吸收和主動答復通俗新聞

Java開辟微信號吸收和主動答復通俗新聞

編輯:關於JAVA

Java開辟微信"號吸收和主動答復通俗新聞。本站提示廣大學習愛好者:(Java開辟微信"號吸收和主動答復通俗新聞)文章只能為提供參考,不一定能成為您想要的結果。以下是Java開辟微信"號吸收和主動答復通俗新聞正文


上篇說完了若何接入微信"號,本文說一下微信"號的最根本功效:通俗新聞的吸收和答復。說到通俗新聞,那末甚麼是微信"號所界說的通俗新聞呢,微信開辟者文檔中提到的吸收的通俗新聞包含以下幾類:

1.文本新聞
2.圖片新聞
3.語音新聞
4.視頻新聞
5.藐視頻新聞
6.地輿地位新聞
7.鏈接新聞(主動答復的新聞)

主動答復的通俗新聞包含:

1.答復文本新聞
2.答復圖片新聞
3.答復語音新聞
4.答復視頻新聞
5.答復音樂新聞
6.答復圖文新聞

其實吸收新聞和主動答復新聞這兩個舉措是不分居的,這原來就是一個交互場景,普通情形就是"號經由過程剖析吸收到的新聞,會給出對應的答復。固然也不克不及消除一些特別營業了。

若何吸收新聞

要吸收的這7中新聞的xml格局這裡就不列出了,請到官方文檔檢查,有詳細的格局界說和屬性解釋。格局很簡略,根本共有屬性包含ToUserName、FromUserName、CreateTime、MsgType、MsgId,而且每品種型有本身特別的屬性。

看到這裡,其實就很明確了,吸收新聞的進程其實就是獲得post要求的這個xml,然後對這個xml停止剖析的進程。post要求的進口照樣之條件到的微信"號接入的誰人地址,全部"號的一切要求都邑走這個進口,只是接入時是get要求,其它情形下是post要求。處置xml這裡用了dom4j,xml處置代碼以下,在servlet的post辦法中挪用parseXml辦法便可:

public static Map parseXml(HttpServletRequest request) throws Exception {
// 將解析成果存儲在HashMap中
Map map = new HashMap();
// 從request中獲得輸出流
InputStream inputStream = request.getInputStream();
/*
* 讀取request的body內容 此辦法會招致流讀取成績 Premature end of file. Nested exception:
* Premature end of file String requestBody =
* inputStream2String(inputStream); System.out.println(requestBody);
*/
// 讀取輸出流
SAXReader reader = new SAXReader();
Document document = reader.read(inputStream);
// 獲得xml根元素
Element root = document.getRootElement();
// 獲得根元素的一切子節點
List<Element> elementList = root.elements();
// 遍歷一切子節點
for (Element e : elementList)
map.put(e.getName(), e.getText());
// 釋放資本
inputStream.close();
inputStream = null;
return map;
}
private static String inputStream2String(InputStream is) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int i = -1;
while ((i = is.read()) != -1) {
baos.write(i);
}
return baos.toString();
}

若何主動答復新聞

上面我基於如許一個邏輯來演示結構答復的新聞,吸收到文本新聞"文本",答復文本新聞;吸收到“圖片”,答復圖片新聞;吸收到“語音”,答復語音新聞;吸收到“視頻”,答復視頻新聞;吸收到“音樂”,答復音樂新聞;吸收到“圖文”,答復圖文新聞。

以答復文本新聞作為解釋:

<xml>
<ToUserName><![CDATA[發新聞的人,即定閱者]]></ToUserName>
<FromUserName><![CDATA[微信"號自己]]></FromUserName>
<CreateTime>新聞創立時光(整形)</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[新聞內容]]></Content>
</xml>

前兩個屬性可以從吸收的新聞中獲得,吸收的新聞格局以下:

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName> 
<CreateTime>1348831860</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[this is a text]]></Content>
<MsgId>1234567890123456</MsgId>
</xml> 

個中吸收新聞格局中的ToUserName就是答復新聞的FromUserName,吸收新聞格局中的FromUserName就是答復新聞的ToUserName。

CreateTime為新聞發送的時光戳。MsgType為新聞類型,文本為text。Content為新聞內容。

詳細每品種型新聞的答復,就是結構此品種型的xml格局內容,格局年夜同小異,只是音樂、視頻、語音、圖文格局絕對於文本新聞結構的xml內容略微龐雜一點。詳細可參考官方文檔。這裡不做贅述,信任列位一看便明確。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved