Apakah rundingan kandungan dalam Asp.Net webAPI C#?

王林
Lepaskan: 2023-09-11 17:13:01
ke hadapan
596 orang telah melayarinya

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 -

  • Jenis objek yang akan disiri
  • #🎜 Koleksi media daripada permintaan HTTP
Kaedah berunding mengembalikan dua maklumat -

#🎜🎜 #penggunaan formatter mana #
    Jenis media respons
  • Jika pemformat tidak dijumpai, kaedah Runding mengembalikan batal dan pelanggan menerimanya Ralat HTTP 406 (Tidak Boleh Diterima).
Mari kita pertimbangkan StudentController berikut.

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"
         }
      };
   }
}
Salin selepas log masuk

Salah satu kriteria untuk perkhidmatan RESTful ialah pelanggan sepatutnya dapat Tentukan format respons yang mereka mahu - XML, JSON, dsb. Dihantar ke pelayan yang mengandungi pengepala Terima. Menggunakan pengepala Terima, pelanggan boleh Nyatakan format jawapan. Contohnya

Accept: application/xml returns XML
Accept: application/json returns JSON
Salin selepas log masuk

Output di bawah menunjukkan bahawa apabila kita melepasi pengepala Terima sebagai XML, responsnya ialah XML Aplikasi/XML.

Output di bawah menunjukkan bahawa apabila kita melepasi pengepala Terima sebagai JSON, responsnya ialah JSON aplikasi/JSON. 什么是 Asp.Net webAPI C# 中的内容协商?

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. 什么是 Asp.Net webAPI C# 中的内容协商?

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什么是 Asp.Net webAPI C# 中的内容协商?

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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!