Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 23922|Resposta: 0

[Fonte] .net/c# Diretrizes da Interface de Mensagens da Plataforma Pública WeChat Serialização e desserialização

[Copiar link]
Publicado em 23/08/2016 17:07:02 | | |
Recentemente, o irmão Shuang quis tentar o modo desenvolvedor da conta pública do WeChat e se inscreveu para uma conta na plataforma pública WeChat. Depois fui ver o guia de interface da plataforma aberta, ele colocou um link no grupo, o WeChat estava superaquecido recentemente, eu também cliquei curioso.

Clique no guia da interface de mensagens, podemos ver que a interface de mensagens da plataforma pública usa XML para interação de dados. Para facilitar a manipulação de dados, geralmente serializamos e desserializamos XML. Serialização é o processo de converter o estado de um objeto em um formato que pode ser mantido ou transferido. O oposto da serialização é a desserialização, que converte fluxos em objetos. Esses dois processos se combinam para facilitar o armazenamento e a transferência de dados.

Vamos falar primeiro sobre serialização, vamos pegar o formato XML de resposta a mensagens gráficas como exemplo, porque esse formato basicamente inclui todo o push e resposta de mensagens acima.


Quando <xml><Articles>recebemos a resposta de dados da plataforma pública POST para retornar a saída, usamos serialização XML, ou seja, para converter o objeto de dados de resposta no formato de dados XML fornecido pela plataforma pública, que é conveniente para transmissão de dados. Serialização Aqui escrevi um código de exemplo simples em C#. Para obter a string serializada, Não há saída direta, claro que no seu projeto você pode usar diretamente Response.Output.


É mencionado aqui que o nome do elemento raiz XML gerado pelo método Serialize da classe XmlSerializer é o nome padrão da classe de serialização. Por que me sinto tão confusa quando leio essa frase? E não quero usar uma palavra sem sentido como xml como nome de classe, precisamos adicionar uma tag de propriedade à classe de serialização [XmlRoot(ElementName = "xml")] para especificar que o elemento XML gerado se chama xml.
Se você não adicionar essa tag, se o nome da sua classe de serialização não corresponder ao nome do elemento raiz do XML, você sempre terá um erro de formato de documento.

Após obter o elemento raiz, precisamos resolver o problema do nó de coleção de Artigos; neste momento, precisamos criar uma nova lista de tipos fortes, e a variável é chamada de propriedade pública Artigos.


XmlArrayItemAttribute é um tipo derivado que especifica que o XmlSerializer pode ser colocado em um array serializado. Depois de criar a classe, depurar e analisá-la, basicamente não há grande problema.

Vamos falar sobre desserialização. Quando um usuário comum do WeChat envia uma mensagem para a conta pública, o servidor do WeChat POSTARÁ a mensagem na URL preenchida. Neste momento, precisamos desserializar os dados recebidos nos objetos necessários para facilitar a operação e armazenamento. Normalmente usamos o Request.Form["param"] para obter os dados do Post, e muitos desenvolvedores percebem que os dados do POST não têm parâmetros ao olhar a documentação da interface, ficam confusos e não sabem como obter os dados. Aqui usamos o Request.InputStream para obter o conteúdo do corpo da entidade HTTP recebida. Para mais informações, consulte este artigo: http://blog.sina.com.cn/s/blog_9fa44b550101ee3r.html

Deserialização Aqui escrevi um exemplo simples de código em C#.


Aqui, por ser uma string que copia diretamente os dados de amostra xml que respondem à mensagem gráfica, a sobrecarga do Deserialize (TextReader textReader) é usada; claro, você pode usar diretamente a sobrecarga do Deserialize (fluxo de fluxo) no projeto.

Para perguntas sobre serialização XML, veja este artigo sobre MSDN sobre serialização XML e SOAP

Coloquei o arquivo de código da instância relevante no github em XmlSerializerExample

Escreva rápido e simplesmente deixe uma marca. Não comi o suficiente à noite e agora estou enjoada. Preciso ir dormir rápido.
Se houver algum erro, por favor, corrija-o.

Link original:

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





Anterior:Desserialização xml Há um erro no documento XML (1, 2).
Próximo:[código-fonte].net/c# WeChat Smart Chat escaneamento de informações de localização GIS para obter a função de imagem
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com