Rundingan kandungan ialah proses memilih perwakilan terbaik untuk kandungan yang diberikan Balas apabila berbilang perwakilan tersedia. bermakna, bergantung kepada Nilai pengepala dalam permintaan diterima dan pelayan menghantar respons. utama Mekanisme untuk rundingan kandungan dalam HTTP ialah pengepala permintaan ini -
Terima - jenis media yang boleh diterima untuk respons, seperti "application/json", "application/ xml" atau Jenis media tersuai, seperti "application/vnd.example+xml"
Accept-Charset - set aksara manakah yang boleh diterima, seperti UTF-8 atau ISO 8859-1 .
Terima-Pengekodan - Pengekodan kandungan manakah yang boleh diterima, seperti gzip.
Terima-Bahasa - Lebih suka bahasa pengekodan semula jadi, seperti "en-us".
Pelayan juga boleh melihat bahagian lain permintaan HTTP. Contohnya, jika Permintaan itu mengandungi pengepala X-Requested-With, yang menunjukkan permintaan AJAX dan pelayan Jika tiada pengepala Terima, ia mungkin lalai kepada JSON.
Dalam rundingan kandungan, saluran paip bermula dari HttpConfiguration objek. Ia juga mendapat senarai pemformat media daripada Koleksi HttpConfiguration.Formatters.
Seterusnya, saluran paip memanggil IContentNegotiator.Berunding, hantar -
using DemoWebApplication.Models; using System; using System.Collections.Generic; using System.Linq; using System.Web.Http; namespace DemoWebApplication.Controllers{ public class StudentController : ApiController{ List<Student> students = new List<Student>{ new Student{ Id = 1, Name = "Mark" }, new Student{ Id = 2, Name = "John" } }; } }
Accept: application/xml returns XML Accept: application/json returns JSON
Output di bawah menunjukkan bahawa apabila kita melepasi pengepala Terima sebagai JSON, responsnya ialah JSON aplikasi/JSON.
Sila ambil perhatian bahawa apabila respons dihantar kepada pelanggan dalam format yang diminta Pengepala Jenis Kandungan respons ditetapkan kepada nilai yang sesuai. Contohnya, jika Pelanggan meminta aplikasi/xml, dan pelayan menghantar data dalam format XML. Tetapkan juga Content-Type=application/xml.
Kita juga boleh nyatakan angka merit. Dalam contoh di bawah, xml mempunyai kualiti yang lebih tinggi Faktor adalah lebih penting daripada json, jadi pelayan menggunakan pemformat XML dan memformat data ke dalam XML. application/xml;q=0.8,application/json;q=0.5
Atas ialah kandungan terperinci Apakah rundingan kandungan dalam Asp.Net webAPI C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!