Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 23922|Отговор: 0

[Източник] .net/c# Насоки за интерфейс за съобщения на публична платформа WeChat Сериализация и десериализация

[Копирай линк]
Публикувано в 23.08.2016 г. 17:07:02 ч. | | |
Наскоро брат Шуанг искаше да пробва режима за разработчици на публичен акаунт в WeChat и кандидатства за акаунт в публичната платформа WeChat. После отидох да видя интерфейсния гайд на отворената платформа, той сложи линк в групата, WeChat напоследък е прегрял, и аз се включих любопитно.

Кликнете върху ръководството за интерфейса на съобщенията и виждаме, че интерфейсът за съобщения на публичната платформа използва XML за взаимодействие с данни. За удобство на обработката на данни обикновено сериализираме и десериализираме XML. Сериализацията е процесът на преобразуване на състоянието на даден обект във формат, който може да се поддържа или прехвърля. Противоположността на сериализацията е десериализацията, която превръща потоците в обекти. Тези два процеса се комбинират, за да улеснят съхранението и прехвърлянето на данни.

Нека първо поговорим за сериализацията, нека вземем XML формата за отговор на графични съобщения като пример, защото този формат включва всички горепосочени push и message reply.


Когато <xml><Articles>получим отговор от публичната платформа POST за връщане на изхода, използваме XML сериализация, тоест за конвертиране на обекта с отговорни данни в XML формата, предоставен от публичната платформа, който е удобен за предаване на данни. Сериализация Тук написах прост примерен код на C#. За да получим сериализирания низ, Няма директен изход, разбира се, в проекта ти можеш директно да отговаряш. Изход.


Тук се споменава, че името на XML кореновия елемент, генериран от метода Serialize на класа XmlSerializer, по подразбиране е името на класа за сериализация. Защо се чувствам толкова объркан, когато чета това изречение? И не искам да използвам безсмислена дума като xml като име на клас, трябва да добавим свойствен таг към класа за сериализация [XmlRoot(ElementName = "xml")], за да уточним, че генерираният XML елемент се казва xml.
Ако не добавите този таг, ако името на класа за сериализация не съответства на името на кореновия елемент в XML, винаги ще получите грешка във формата на документа.

След като получим кореновия елемент, трябва да решим проблема с колекцията на Статии, в този момент трябва да създадем нов списък със силни типове, като променливата се нарича Статии публична собственост.


XmlArrayItemAttribute е производен тип, който определя, че XmlSerializer може да бъде поставен в сериализиран масив. След като създам класа, дебъгвам и го разгледам, практически няма голям проблем.

Нека поговорим за десериализацията. Когато обикновен потребител на WeChat изпрати съобщение към публичния акаунт, сървърът на WeChat ПУБЛИКУВА съобщението на попълнения URL. В момента трябва да десериализираме получените данни в обектите, които ни трябват за лесна работа и съхранение. Обикновено използваме Request.Form["param"], за да получим данните на публикацията, и много разработчици откриват, че данните на POST имат параметри при разглеждане на документацията на интерфейса и са объркани и не знаят как да получат данните. Тук използваме Request.InputStream, за да получим съдържанието на входящото тяло на HTTP обекта. За повече информация, моля, вижте тази статия: http://blog.sina.com.cn/s/blog_9fa44b550101ee3r.html

Десериализация Тук написах прост примерен код на C#.


Тук, тъй като това е низ, който директно копира xml примерните данни, отговарящи на графичното съобщение, се използва претоварването на Deserialize (TextReader textReader), разбира се, можете директно да използвате претоварването на Deserialize (поток поток) в проекта.

За въпроси относно сериализацията на XML, вижте тази статия в MSDN за XML и SOAP сериализация

Сложих съответния инстанционен код в github в XmlSerializerExample

Пишете набързо и просто оставете следа. Не ядях достатъчно вечер и сега ми се гади. Трябва бързо да си легна.
Ако има грешки, моля, коригирайте ги.

Оригинален линк:

http://imr3.com/tech/weixin-message-api-serialize





Предишен:xml десериализация В XML документа има грешка (1, 2).
Следващ:[изходен код].net/c# WeChat интелигентен чат, GIS сканиране на информация за местоположение, за да получите функция за изображение
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com