Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 23922|Jawab: 0

[Sumber] .net/c# Pedoman Antarmuka Pesan Platform Publik WeChat Serialisasi dan deserialisasi

[Salin tautan]
Diposting pada 23/08/2016 17.07.02 | | |
Baru-baru ini, Saudara Shuang ingin mencoba mode pengembang akun publik WeChat, dan dia mengajukan permohonan akun di platform publik WeChat. Kemudian saya pergi untuk melihat panduan antarmuka platform terbuka, dia meletakkan tautan di grup, WeChat menjadi terlalu panas baru-baru ini, saya juga mengklik dengan rasa ingin tahu.

Klik panduan antarmuka pesan, kita dapat melihat bahwa antarmuka pesan platform publik menggunakan XML untuk interaksi data. Untuk kenyamanan manipulasi data, kami biasanya melakukan serialisasi dan deserialisasi XML. Serialisasi adalah proses mengubah status objek menjadi format yang dapat dipertahankan atau ditransfer. Kebalikan dari serialisasi adalah deserialisasi, yang mengubah aliran menjadi objek. Kedua proses ini digabungkan untuk memudahkan penyimpanan dan transfer data.

Mari kita bicara tentang serialisasi terlebih dahulu, mari kita ambil format XML membalas pesan grafis sebagai contoh, karena format ini pada dasarnya mencakup semua push pesan dan balasan pesan di atas.


Ketika <xml><Articles>kami menerima respons data dari platform publik POST untuk mengembalikan output, kami menggunakan serialisasi XML, yaitu untuk mengubah objek data respons menjadi format data XML yang disediakan oleh platform publik, yang nyaman untuk transmisi data. Serialisasi Di sini saya menulis contoh kode sederhana di C#. Untuk mendapatkan string serial, Tidak ada output langsung, tentu saja dalam proyek Anda Anda dapat langsung Response.Output.


Disebutkan di sini bahwa nama elemen akar XML yang dihasilkan oleh metode Serialize dari kelas XmlSerializer default ke nama kelas serialisasi. Mengapa saya merasa begitu memutar lidah ketika saya membaca kalimat ini? Dan saya tidak ingin menggunakan kata yang tidak berarti seperti xml sebagai nama kelas, kita perlu menambahkan tag properti ke kelas serialisasi [XmlRoot(ElementName = "xml")] untuk menentukan bahwa elemen XML yang dihasilkan bernama xml.
Jika Anda tidak menambahkan tag ini, jika nama kelas serialisasi Anda tidak sesuai dengan nama elemen akar XML, Anda akan selalu mendapatkan kesalahan format dokumen.

Setelah mendapatkan elemen root, kita perlu memecahkan masalah simpul koleksi Artikel, saat ini kita perlu membuat daftar baru jenis kuat, dan variabel tersebut disebut properti publik Artikel.


XmlArrayItemAttribute adalah jenis turunan yang menentukan bahwa XmlSerializer dapat ditempatkan dalam array berseri. Setelah membuat kelas, men-debug dan melihatnya, pada dasarnya tidak ada masalah besar.

Mari kita bicara tentang deserialisasi. Ketika pengguna WeChat biasa mengirim pesan ke akun publik, server WeChat akan MEMPOSTING pesan ke URL yang terisi. Pada saat ini, kita perlu mendeserialisasi data yang diterima menjadi objek yang kita butuhkan untuk pengoperasian dan penyimpanan yang mudah. Biasanya kami menggunakan Request.Form["param"] untuk mendapatkan data Post, dan banyak pengembang menemukan bahwa data POST tidak memiliki parameter saat melihat dokumentasi antarmuka, dan mereka bingung dan tidak tahu bagaimana mendapatkan data. Di sini kita menggunakan Request.InputStream untuk mendapatkan konten badan entitas HTTP yang masuk. Untuk informasi lebih lanjut, silakan lihat artikel ini: http://blog.sina.com.cn/s/blog_9fa44b550101ee3r.html

Deserialisasi Di sini saya menulis contoh kode sederhana di C#.


Di sini, karena merupakan string yang langsung menyalin data sampel xml yang membalas pesan grafis, maka kelebihan Deserialize (TextReader textReader) digunakan, tentunya Anda dapat langsung menggunakan kelebihan Deserialize (Stream stream) dalam proyek.

Untuk pertanyaan tentang serialisasi XML, lihat artikel ini di MSDN tentang serialisasi XML dan SOAP

Saya telah menempatkan file kode instans yang relevan di github di XmlSerializerExample

Tulis dengan tergesa-gesa dan cukup buat tanda. Saya tidak cukup makan di malam hari dan sekarang saya merasa mual. Saya harus cepat tidur.
Jika ada kesalahan, harap perbaiki.

Tautan asli:

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





Mantan:Deserialisasi xml Ada kesalahan dalam dokumen XML (1, 2).
Depan:[kode sumber].net/c# Pemindaian informasi lokasi GIS obrolan cerdas WeChat untuk mendapatkan fungsi gambar
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com