Die Antworten auf die Entwicklung der öffentlichen Konten von WeChat sind Ihre Referenz. Der spezifische Inhalt ist wie folgt
Beschreibung der Hauptparameter von Grafik- und Textnachrichten
Über den offiziellen WeChat Message Interface -Handbuch können Sie die Parameter von Grafik- und Textnachrichten sehen, wie in der folgenden Abbildung gezeigt:
Aus dem obigen Bild können wir lernen:
1. Die Anzahl der Grafiknachrichten ist auf 10 begrenzt, dh der Wert von Articlecount in den grafischen Nachrichten (die Anzahl der grafischen Nachrichten ist auf 10 begrenzt)
2. Für Grafik- und Textnachrichten wird das Bild der ersten Grafik und des Textes als großes Bild angezeigt, während die Bilder anderer Grafik und Text als kleines Bild angezeigt werden.
3. Die empfohlene Größe des ersten Bildes beträgt 640*320 und das empfohlene Bild beträgt 80*80 für andere Bilder
Folgende beginnt mit der Implementierung:
Basisklasse für Anforderungsnachricht:
com.thoughtworks.xstream.Annotations.xstreamalias; import Java.io.ioSerializable;/** * @Author inchlifc */public class Basemessage implementiert serialisierbar {@xstreamalias ("tousername") @xstreamcdata private String -Tousername; @Xstreamalias ("fromuSerername") @xstreamcdata private String fromusername; @Xstreamalias ("CreateTime") Private Long CreateTime; @Xstreamalias ("msgType") @xstreamcdata private String msgType; public basemessage () {super (); } public basemessage (String fromusername, String tousername) {Super (); Fromuername = fromuername; Tousername = tousername; CreateTime = System.currentTimemillis (); } public String Gettousername () {return tousername; } public void settousername (String tousername) {tousername = tousername; } public String GetFromusername () {return fromuNername; } public void setfromusername (String fromuSerername) {fromuSerername = fromuername; } public long getCreateTime () {return CreateTime; } public void setCreateTime (long CreateTime) {createTime = CreateTime; } public String getmsgType () {return msgType; } public void setMSGType (String msgType) {msgType = msgType; }}Grafik- und Textnachrichtenkategorie:
import com.thoughtworks.xstream.annotations.xstreamalias; import java.util.list; @xstreamalias ("xml") public class ArticlesMessage erweitert die Basisemessage {@xstreamalias ("ArticleCount") Private Int ArticleCount; @Xstreamalias ("Artikel") private Liste <CorticlesItem> Artikel; public int getarticlecount () {return articlecount; } public void setArticleCount (int articlecount) {articleCount = articleCount; } publiclist <CorticlesItem> getarticles () {zurückgeben Artikel; } public void setArticles (Liste <CorticlesItem> Artikel) {Artikel = Artikel; }}Artikelklasse in den Text- und Textnachrichten:
com.thoughtworks.xstream.Annotations.xstreamalias; Import java.util.list; @xstreamalias ("Artikel") Public Class Articles {private Liste <articlesItem> Artikel;}ArticlesItem -Klasse im Text- und Textnachrichten:
com.thoughtworks.xstream.Annotations.xstreamalias; Import java.io.ioSserializable; @xstreamalias ("item") public class ArticlesItem implementiert serialisierbarer {@xstreamalias ("Titel") @xstreamcdata privater String -Titel; @Xstreamalias ("Beschreibung") @xstreamcdata private Zeichenfolge Beschreibung; @Xstreamalias ("picurl") @xstreamcdata private String picurl; @Xstreamalias ("url") @xstreamcdata private String -URL; public String gettitle () {return title; } public void settitle (String title) {title = title; } public String getDescription () {Rückgabe Beschreibung; } public void setDescription (String Beschreibung) {Beschreibung = Beschreibung; } public String getPicurl () {return picurl; } public void setpicurl (String picurl) {picurl = picurl; } public String geturl () {return url; } public void seturl (String url) {url = url; }}Service -Layer -Implementierungsmethode:
Verpackungsmethode
/ ** * Holen Sie Blog -Textnachrichten * * @param CustomName * @param sserNvername * @param createtime * @return */ private ArtikelMessage getBlogMessage (String CustomName, String sserNvername, Long Createtime) {ArtikelMessage outputmmsg = new cansedsageMessage (); outputMSG.SetFromusername (ServerName); OutputMSG.Settousername (CusterMname); outputmsg.setCreateTime (CreateTime); OutputMSG.SetMSGTYPE (msgType.news.getValue ()); Liste <CorticlesItem> Artikel = new ArrayList <> (); ArticlesItem item1 = neuer ArtikelIntem (); Item1.Settitle ("Überprüfen Sie, ob Sie den Abend Cool Breeze in den Abend eingeben"); item1.setpicurl (WechatConstant.base_server + "Ressourcen/Bilder/Wechat/a.png"); item1.seturl ("https://my.oschina.net/inchlifc/blog"); Artikel.Add (Punkt1); outputmsg.setArticles (Artikel); OutputMSG.SetarticleCount (Artikel.size ()); return OutputMSG; }Wenn Sie die Nummer 1 eingeben, kehren Sie zum SMS -Druck zurück
// Verarbeiten Sie den empfangenen Message ServletInputStream in = request.getInputStream (); // Post -Stream in das Xstream -Objekt Xstream xs = new Xstream () konvertieren; xs = serializexmlutil.createxstream (); Xstream.setUpDefaultSecurity (xs); XSALLAWTYPES (neue Klasse [] {textMessage.class, inputMessage.class, ArtikelMessage.class}); XS.ProcessAnnotations (InputMessage.Class); XS.ProcessAnnotations (ArtikelMessage.Class); XS.ProcessAnnotations (Bildemessage.Class); // Die XML -Knotendaten unter dem angegebenen Knoten in Objekte xs.alias ("xml", inputMessage.class) zuordnen; // Streams in String StringBuilder xmlmsg = new StringBuilder () konvertieren; Byte [] B = neues Byte [4096]; für (int n; (n = in.read (b))! } logger.info ("message empfangen ===" + xmlmsg.toString ()); // XML -Inhalt in InputMessage -Objekt inputMessage inputmsg = (inputMessage) xs.fromxml (xmlmsg.toString ()) konvertieren; // Server String ServerName = inputmsg.gettousername (); // Client String customName = inputmsg.getfromusername (); // Zeit erhalten lange createTime = inputmsg.getCreateTime (); // Rückgabezeit langer Rückkehrtime = calendar.getInstance (). GetTimeInmillis () / 1000; // Nehmen Sie den Textinhaltsstring content = inputmsg.getContent (); // Erhalten Sie den Nachrichtentyp String msgType = inputmsg.getmsgType (); if (msgType.text.getValue (). Equals (msgType)) {// Eingabe -Blog -Informationen in Eingabe 1 Push -Blog -Informationen if ("1" .Equals (Inhalt)) {logger.info ("Text 1 empfangen"); ArtikelMessage OutputMSG = getBlogMessage (CusterMname, ServerName, ReturnTime); logger.info ("zur Blog -Textnachricht zurückkehren ==" + xsoxml (OutputMSG)); response.getWriter (). Schreiben (XS.Toxml (OutputMSG)); }}Auslaufergebnisse:
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.