Les réponses au développement de compte public WeChat concernent votre référence. Le contenu spécifique est le suivant
Description des principaux paramètres des messages graphiques et texte
Grâce au guide officiel d'interface de message WECHAT, vous pouvez voir les paramètres des messages graphiques et texte, comme indiqué dans la figure ci-dessous:
Depuis l'image ci-dessus, nous pouvons apprendre:
1. Le nombre de messages graphiques est limité à 10, c'est-à-dire que la valeur de l'articleCount dans les messages graphiques (le nombre de messages graphiques est limité à 10)
2. Pour les messages graphiques et texte, l'image du premier graphique et du texte s'affiche comme une grande image, tandis que les images d'autres graphiques et de texte sont affichées comme une petite image.
3. La taille recommandée de la première image est de 640 * 320, et l'image recommandée est de 80 * 80 pour d'autres images
Ce qui suit commence par la mise en œuvre:
Classe de base pour le message de demande:
Importer com.thoughtworks.xstream.annotations.xstreamalias; import java.io.serializable; / ** * @author inchlifc * / public class BaseMessage implémente Serializable {@xstreamalias ("Tausername") @xstreamcdata private string tusername; @XStreamalias ("FromUsername") @xstreamcdata String privé FromUnserName; @XStreamalias ("CreateTime") privé long CreateTime; @Xstreamalias ("msgType") @xstreamcdata String privé msgType; Public BasEnsage () {super (); } public BasEmsage (String FromUserName, String Tausername) {super (); FromUserName = FromUserName; Tousername = Tousername; CreateTime = System.CurrentTimemillis (); } public String getTousername () {return Tausername; } public void Settousename (String Tousername) {Tausername = Tousername; } public String getFromUsername () {return fromUserName; } public void setFromUsername (String fromUserName) {FromUserName = FromUserName; } public long getCreateTime () {return CreateTime; } public void setCreateTime (long createTime) {CreateTime = CreateTime; } public String getmsgType () {return msgType; } public void SetMsGType (String msgType) {msgType = msgType; }}Catégorie graphique et SMS:
Import com.thoughtworks.xstream.annotations.xstreamalias; import java.util.list; @xstreamalias ("xml") classe publique ArticlesMessage étend BasEMessage {@xstreamalias ("articleCount") private int articleCount; @XStreamalias ("articles") Liste privée <ArticlesItem> Articles; public int getarticleCount () {return AticleCount; } public void setarticleCount (int ArtiCleCount) {artiCleCount = artiCleCount; } Liste publique <ArticlesItem> GetArticles () {Return Articles; } public void setArticles (list <ArticlesItem> articles) {articles = articles; }}Classe d'articles dans le texte et les messages texte:
import com.thoughtworks.xstream.annotations.xstreamalias; import java.util.list; @xstreamalias ("articles") Articles de classe publique {Liste privée <ArticlesItem> Articles;}Classe d'articlesiTem dans le texte et les messages texte:
Importer com.thoughtworks.xstream.annotations.xstreamalias; import java.io.serializable; @xstreamalias ("item") classe publique ArticleItem implémente Serializable {@xstreamalias ("title") @xstreamcdata private string titre; @XStreamalias ("Description") @xStreamCData Private String Description; @Xstreamalias ("picurl") @xstreamcdata String privé picurl; @XStreamalias ("URL") @xstreamcdata URL de chaîne privée; public String getTitle () {return title; } public void SettItle (String title) {title = title; } public String getDescription () {return Description; } public void setDescription (String Description) {Description = Description; } public String getPICUrl () {return picurl; } public void setPicurl (String picurl) {picurl = picurl; } public String getUrl () {return url; } public void setUrl (string url) {url = url; }}Méthode d'implémentation de la couche de service:
Méthode d'emballage
/ ** * Obtenez des messages texte de blog * * @param personnalisés * @param servername * @param créetetime * @return * / private ArticlesMessage getBlogMessage (String CustomName, String ServerName, Long CreateTime) {ArticlesMessage outputMsg = new ArticlesMessage (); outputmsg.setFromUsername (servername); outputmsg.setTousername (CusterMname); outputmsg.setCreateTime (CreateEtime); outputmsg.setmsgType (msgtype.news.getValue ()); Liste <ArticlesItem> Articles = new ArrayList <> (); ArticleItem item1 = New ArticleItem (); item1.setTitle ("Vérifiez pour entrer dans le blog du soir Cool Breeze"); item1.setpicurl (wechatConstant.base_server + "Ressources / images / wechat / a.png"); item1.setUrl ("https://my.oschina.net/inchlifc/blog"); Articles.Add (point1); outputmsg.setarticles (articles); outputmsg.setarticleCount (articles.size ()); return outputmsg; }Si vous entrez le numéro 1, revenez au message texte Push
// Traitez le message reçu servletInputStream dans = request.getInputStream (); // Convertir le STREAT POST en Xstream Object Xstream xs = new XStream (); xs = serializexmlutil.CreateExStream (); Xstream.setupDefaultSecurity (XS); xs.allowTypes (new class [] {textMessage.class, inputMessage.class, ArticlesMessage.class}); xs.processannotations (inputMessage.class); xs.processannotations (ArticlesMessage.class); xs.processannotations (imageMessage.class); // Map des données de nœud XML sous le nœud spécifié en objets xs.alias ("xml", inputMessage.class); // convertit les flux en chaîne stringbuilder xmlmsg = new StringBuilder (); octet [] b = nouveau octet [4096]; pour (int n; (n = in.read (b))! = -1;) {xmlmsg.append (nouvelle chaîne (b, 0, n, "utf-8")); } logger.info ("message reçu ====" + xmlmsg.toString ()); // Convertir le contenu XML en entrée d'objet InputMessage inputMessage inputmsg = (inputMessage) xs.fromxml (xmlmsg.toString ()); // String Server servername = inputmsg.getTousname (); // Client String CustomName = inputmsg.getFromUsername (); // reçoit du temps de création = inputmsg.getCreateTime (); // heure de retour du temps de retour = calendar.getInstance (). GetTimeInmilis () / 1000; // Prenez le contenu de contenu du texte contenu = inputmsg.getContent (); // Obtenez la chaîne de type de message msgType = inputmsg.getmsgType (); if (msgType.Text.getValue (). ArticlesMessage outputmsg = getBlogMessage (CusterMname, ServerName, returntime); Logger.info ("Retour au message texte du blog ===" + xs.toxml (outputmsg)); réponse.getWriter (). Write (xs.toxml (outputmsg)); }}Résultats en cours:
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.