Was ist Inhaltsverhandlung in Asp.Net webAPI C#?

王林
Freigeben: 2023-09-11 17:13:01
nach vorne
536 Leute haben es durchsucht

Bei der Inhaltsverhandlung geht es darum, die beste Darstellung für einen bestimmten Inhalt auszuwählen Antwort, wenn mehrere Darstellungen verfügbar sind. bedeutet, hängt davon ab Der Header-Wert in der Anfrage wird akzeptiert und der Server sendet die Antwort. primär Der Mechanismus für die Inhaltsaushandlung in HTTP sind diese Anforderungsheader –

Accept– welche Medientypen von der Antwort akzeptiert werden können, z. B. „application/json“, „application/xml“ oder benutzerdefinierte Medientypen wie „application/ vnd.example" +xml"

Accept-Charset– Welche Zeichensätze sind akzeptabel, z. B. UTF-8 oder ISO 8859-1.

Accept-Encoding– Welche Inhaltskodierungen sind akzeptabel, z. B. gzip.

Accept-Language– Bevorzugen Sie natürliche Codierungssprachen wie „en-us“.

Der Server kann sich auch andere Teile der HTTP-Anfrage ansehen. Zum Beispiel, wenn Die Anfrage enthält den X-Requested-With-Header, der auf eine AJAX-Anfrage hinweist, und den Server Wenn kein Accept-Header vorhanden ist, wird möglicherweise standardmäßig JSON verwendet.

Bei der Inhaltsverhandlung beginnt die Pipeline mit HttpConfiguration-Objekt. Außerdem wird die Liste der Medienformatierer abgerufen HttpConfiguration.Formatters-Auflistung.

Als nächstes ruft die Pipeline IContentNegotiator.Negotiate auf und übergibt –

  • Der zu serialisierende Objekttyp
  • Eine Sammlung von Medienformatierern
  • HTTP-Anfrage

Die Negotiate-Methode gibt zwei Informationen zurück –

    Welche one to use Der Medientyp der Antwort des Formatierers

Wenn der Formatierer nicht gefunden wird, gibt die Negotiate-Methode null zurück und der Client empfängt HTTP-Fehler 406 (nicht akzeptabel).

Betrachten wir den folgenden StudentController.

using DemoWebApplication.Models; using System; using System.Collections.Generic; using System.Linq; using System.Web.Http; namespace DemoWebApplication.Controllers{ public class StudentController : ApiController{ List students = new List{ new Student{ Id = 1, Name = "Mark" }, new Student{ Id = 2, Name = "John" } }; } }
Nach dem Login kopieren

Eines der Kriterien für einen RESTful-Service ist, dass der Kunde dazu in der Lage sein sollte Entscheiden Sie, welches Antwortformat sie wünschen – XML, JSON usw. Wird an den Server gesendet, der den Accept-Header enthält. Mithilfe des Accept-Headers kann der Client dies tun Geben Sie das Format der Antwort an. Zum Beispiel

Accept: application/xml returns XML Accept: application/json returns JSON
Nach dem Login kopieren

Die folgende Ausgabe zeigt, dass die Antwort XML ist, wenn wir den Accept-Header als XML übergeben Anwendung/XML.

什么是 Asp.Net webAPI C# 中的内容协商?

Die Ausgabe unten zeigt, dass die Antwort JSON ist, wenn wir den Accept-Header als JSON übergeben Anwendung/JSON.

什么是 Asp.Net webAPI C# 中的内容协商?

Bitte beachten Sie, wann die Antwort im gewünschten Format an den Kunden gesendet wird Der Content-Type-Header der Antwort wird auf den entsprechenden Wert gesetzt. Zum Beispiel, wenn Der Client fordert application/xml an und der Server sendet Daten im XML-Format. Legen Sie außerdem Content-Type=application/xml fest.

什么是 Asp.Net webAPI C# 中的内容协商?

Wir können auch den Leistungsfaktor angeben. Im folgenden Beispiel hat XML eine höhere Qualität Faktor ist wichtiger als JSON, daher verwendet der Server einen XML-Formatierer und formatiert die Daten in XML. application/xml;q=0.8,application/json;q=0.5

什么是 Asp.Net webAPI C# 中的内容协商?

Das obige ist der detaillierte Inhalt vonWas ist Inhaltsverhandlung in Asp.Net webAPI C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!