الردود على تطوير حساب WeChat العام هي للرجوع إليها. المحتوى المحدد كما يلي
وصف المعلمات الرئيسية للرسائل الرسومية والرسائل النصية
من خلال دليل واجهة رسائل WeChat الرسمي ، يمكنك رؤية معلمات الرسائل الرسومية والرسائل النصية ، كما هو موضح في الشكل أدناه:
من الصورة أعلاه ، يمكننا أن نتعلم:
1. يقتصر عدد الرسائل الرسومية على 10 ، أي قيمة ArticleCount في الرسائل الرسومية (يقتصر عدد الرسائل الرسومية على 10)
2. بالنسبة للرسائل الرسومية والرسائل النصية ، يتم عرض صورة الرسم والنص الأول كصورة كبيرة ، بينما يتم عرض صور الرسوم الأخرى والنص على أنها صورة صغيرة.
3. الحجم الموصى به للصورة الأولى هو 640*320 ، والصورة الموصى بها هي 80*80 للصور الأخرى
ما يلي يبدأ بالتنفيذ:
الفصل الأساسي لرسالة الطلب:
استيراد com.theaughtworks.xstream.annotations.xstreamalias ؛ استيراد java.io.serializable ؛/** * Auuthor inchlifc */public class basemessage parices serializable {xstreamalias ("touserName") xstreamcdata private tousername ؛ Xstreamalias ("fromuserName") @xstreamcdata سلسلة خاصة من اسم username ؛ @xstreamalias ("createTime") خاص طويل الإبداع ؛ @xstreamalias ("msgtype") @xstreamcdata private msgtype ؛ basemessage العامة () {super () ؛ } basemessage العامة (سلسلة من اسم username ، string touserName) {super () ؛ fromusername = fromusername ؛ touserName = touserName ؛ createTime = System.CurrentTimeMillis () ؛ } السلسلة العامة getTouserName () {return touserName ؛ } الاسم المستقر الفراغ العام (سلسلة touserName) {touserName = touserName ؛ } السلسلة العامة getFromuserName () {return fromuserName ؛ } public void setFromUsername (سلسلة fromuserName) {fromuserName = fromuserName ؛ } public getCreateTime () {return createTime ؛ } public void setCreateTime (long createTime) {createTime = createTime ؛ } السلسلة العامة getMsgType () {return msgtype ؛ } public void setMsgType (String msgtype) {msgtype = msgtype ؛ }}فئة الرسائل الرسومية والنصي:
import com.teughtworks.xstream.annotations.xstreamalias ؛ import java.util.list ؛ xstreamalias ("xml") مقالات الطبقة العامة تمتد basemessage {xstreamalias ("articleCount") private inticleCount ؛ @xstreamalias ("المقالات") قائمة خاصة <CittelsItem> المقالات ؛ public int getArticleCount () {return articleCount ؛ } public void setarticleCount (int articleCount) {articleCount = articleCount ؛ } القائمة العامة <StionItEm> getArticles () {Return Articles ؛ } public void setArticles (قائمة <CittelsItem> المقالات) {المقالات = المقالات ؛ }}فئة المقالات في النص والرسائل النصية:
استيراد com.theaughterworks.xstream.annotations.xstreamalias ؛ استيراد java.util.list ؛ xstreamalias ("المقالات") مقالات الطبقة العامة {قائمة خاصة <CondultItem> المقالات ؛}فئة مقالات في النص والرسائل النصية:
import com.teughtworks.xstream.annotations.xstreamalias ؛ import java.io.serializable ؛ xStreamalias ("item") public class articlesitem تنفذ { @xstreamalias ("title") xstreamcdata عنوان السلسلة الخاصة ؛ @xstreamalias ("الوصف") @xstreamcdata وصف السلسلة الخاصة ؛ @xstreamalias ("picurl") xstreamcdata private string picurl ؛ @xstreamalias ("url") @xstreamcdata url url private string ؛ السلسلة العامة getTitle () {return title ؛ } public void setTitle (tring title) {title = title ؛ } السلسلة العامة getDescription () {return description ؛ } public void setDescription (وصف السلسلة) {الوصف = الوصف ؛ } السلسلة العامة getpicurl () {return picurl ؛ } public void setpicurl (String picurl) {picurl = picurl ؛ } السلسلة العامة geturl () {return url ؛ } public void seturl (url url) {url = url ؛ }}طريقة تنفيذ طبقة الخدمة:
طريقة التغليف
/ ** * احصل على رسائل نصية للمدونة * * param customname * param servername * param createTime * @REGANTURN */ private articlesMessage getBlogMessage (سلسلة customname ، string servername ، createTime long) {articleMessage OutputMsg = new anticlesMessage () ؛ outputmsg.setFromuserName (serverName) ؛ OutputMsg.SettouserName (CusterMname) ؛ outputmsg.setCreateTime (createTime) ؛ outputmsg.setmsgtype (msgtype.news.getValue ()) ؛ قائمة <CittelsItem> المقالات = ArrayList جديد <> () ؛ مقالات item1 = new articleSitem () ؛ item1.SetTitle ("تحقق للدخول إلى مدونة المساء Cool Breeze") ؛ item1.setpicurl (WeChatConstant.base_server + "الموارد/الصور/WeChat/A.Png") ؛ item1.seturl ("https://my.oschina.net/inchlifc/blog") ؛ المقالات. add (item1) ؛ outputmsg.setarticles (مقالات) ؛ outputmsg.setarticleCount (articles.size ()) ؛ إرجاع الإخراج. }إذا قمت بإدخال الرقم 1 ، فأعود إلى دفع الرسائل النصية
// معالجة الرسالة المستلمة servletInputStream في = request.getInputStream () ؛ // تحويل دفق النشر إلى كائن Xstream XStream XS = جديد Xstream () ؛ XS = serializexmlutil.createxstream () ؛ xstream.setupDefaultSecurity (XS) ؛ Xs.allowTypes (فئة جديدة [] {textMessage.class ، inputMessage.class ، articlesmessage.class}) ؛ Xs.ProcessAntations (inputMessage.class) ؛ Xs.processannotations (articlesmessage.class) ؛ Xs.processannotations (heichemessage.class) ؛ // خريطة بيانات عقدة XML ضمن العقدة المحددة في الكائنات Xs.Alias ("XML" ، inputMessage.class) ؛ // تحويل التدفقات إلى StringBuilder xmlmsg = new StringBuilder () ؛ بايت [] ب = بايت جديد [4096] ؛ لـ (int n ؛ (n = in.read (b))! = -1 ؛) {xmlmsg.append (سلسلة جديدة (b ، 0 ، n ، "utf -8")) ؛ } logger.info ("Message receed ====" + xmlmsg.toString ()) ؛ // تحويل محتوى XML إلى inputMessage Object inputMessage inputmsg = (inputMessage) xS.fromxml (xmlmsg.toString ()) ؛ // server string serverName = inputmsg.getTouserName () ؛ // client string customName = inputmsg.getFromuserName () ؛ // استقبال الوقت الطويل createTime = inputmsg.getCreateTime () ؛ // إرجاع وقت العودة الطويل = calendar.getInstance (). getTimeInMillis () / 1000 ؛ // خذ محتوى سلسلة محتوى النص = inputmsg.getContent () ؛ // احصل على نوع الرسالة سلسلة msgtype = inputmsg.getMsgType () ؛ if (msgtype.text.getValue (). equals (msgtype)) {// input 1 push blog معلومات if ("1" .equals (content)) {logger.info ("text 1 traved") ؛ articlesMessage OutputMsg = getBlogMessage (CusterMname ، serverName ، Returntime) ؛ logger.info ("return to blog text message ===" + xS.Toxml (outputMSG)) ؛ استجابة. }}نتائج التشغيل:
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.