Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah rundingan kandungan dalam Asp.Net webAPI C#?

Apakah rundingan kandungan dalam Asp.Net webAPI C#?

王林
王林ke hadapan
2023-09-11 17:13:01579semak imbas

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"
         }
      };
   }
}

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

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam