Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah kita menentukan jenis MIME dalam Asp.Net WebAPI C#?

Bagaimanakah kita menentukan jenis MIME dalam Asp.Net WebAPI C#?

WBOY
WBOYke hadapan
2023-09-20 20:37:15604semak imbas

Jenis media, juga dikenali sebagai jenis MIME, mengenal pasti format sekeping data. Dalam HTTP, jenis media menerangkan format badan mesej. Jenis media terdiri daripada dua rentetan: jenis dan subjenis. Contohnya -

  • text/html
  • image/png
  • application/json
Apabila mesej HTTP mengandungi badan entiti, pengepala Jenis Kandungan menentukan format badan mesej. Ini memberitahu penerima cara menghuraikan kandungan badan mesej.

Apabila pelanggan menghantar mesej permintaan, ia boleh memasukkan pengepala Terima. Pengepala Terima memberitahu pelayan jenis media yang pelanggan harapkan daripada pelayan.

Menerima: teks/html, aplikasi/xhtml+xml, aplikasi/xml p>

Jenis media menentukan cara API Web mensiri dan menyahsiri badan mesej HTTP. API Web mempunyai sokongan terbina dalam untuk data XML, JSON, BSON dan formurlencoded, dan anda boleh menyokong jenis media lain dengan menulis pemformat media.

MediaTypeFormatter ialah kelas abstrak yang diwarisi oleh kelas JsonMediaTypeFormatter dan XmlMediaTypeFormatter. JsonMediaTypeFormatter mengendalikan JSON dan XmlMediaTypeFormatter mengendalikan XML. Jenis media ditentukan dalam kaedah Daftar kelas WebApiConfig. Mari lihat beberapa contoh di mana jenis media boleh digunakan.

Pengawal Pelajar

Contoh

using DemoWebApplication.Models;
using DemoWebApplication.Models;
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"
         }
      };
      public IEnumerable <Student> Get(){
         return students;
      }
   }
}

Contoh hanya mengembalikan JSON daripada perkhidmatan API Web ASP.NET tanpa mengira Terima nilai pengepala -

public static class WebApiConfig{
   public static void Register(HttpConfiguration config){
      config.MapHttpAttributeRoutes();
      config.Formatters.Remove(config.Formatters.XmlFormatter);
      config.Routes.MapHttpRoute(
         name: "DefaultApi",
         routeTemplate: "api/{controller}/{id}",
         defaults: new { id = RouteParameter.Optional }
      );
   }
}

Dengan kod di atas, kami mengalih keluar XmlFormatter, yang memaksa API Web ASP.NET untuk sentiasa mengembalikan JSON tanpa mengira nilai Pengepala Terima dalam permintaan klien. Gunakan teknik ini apabila anda mahu perkhidmatan anda hanya menyokong JSON dan bukannya XML.

我们如何在 Asp.Net WebAPI C# 中指定 MIME 类型?

Daripada output di atas kita dapat melihat bahawa perkhidmatan API Web sentiasa mengembalikan JSON tanpa mengira aplikasi nilai pengepala Terima/xml.

Contoh hanya mengembalikan XML daripada perkhidmatan API Web ASP.NET tanpa mengira Terima nilai pengepala -

public static class WebApiConfig{
   public static void Register(HttpConfiguration config){
      config.MapHttpAttributeRoutes();
      config.Formatters.Remove(config.Formatters.JsonFormatter);
      config.Routes.MapHttpRoute(
         name: "DefaultApi",
         routeTemplate: "api/{controller}/{id}",
         defaults: new { id = RouteParameter.Optional }
      );
   }
}

我们如何在 Asp.Net WebAPI C# 中指定 MIME 类型?

Daripada output di atas kita dapat melihat bahawa perkhidmatan API Web mengembalikan XML tanpa mengira aplikasi nilai pengepala Terima/json.

Contoh mengembalikan JSON dan bukannya XML daripada perkhidmatan API Web ASP.NET dalam situasi berikut Pelayar Membuat Permintaan -

Apabila penyemak imbas membuat permintaan kepada StudentController kami, respons akan dalam format XML. Ini kerana pelayar menghantar menerima pengepala sebagai teks/html secara lalai.

我们如何在 Asp.Net WebAPI C# 中指定 MIME 类型?

Sekarang mari lihat cara menghantar respons JSON dan bukannya XML apabila membuat permintaan daripada penyemak imbas.

public static class WebApiConfig{
   public static void Register(HttpConfiguration config){
      config.MapHttpAttributeRoutes();
      config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new
      MediaTypeHeaderValue("text/html"));
      config.Routes.MapHttpRoute(
         name: "DefaultApi",
         routeTemplate: "api/{controller}/{id}",
         defaults: new { id = RouteParameter.Optional }
      );
   }
}

Output di bawah menunjukkan bahawa apabila permintaan dicetuskan daripada penyemak imbas, respons adalah jenis JSON tanpa mengira teks/html pengepala terima.

Bagaimanakah kita menentukan jenis MIME dalam Asp.Net WebAPI C#?

Atas ialah kandungan terperinci Bagaimanakah kita menentukan jenis MIME 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