Gereksinimler: Dış hizmetler sağlamak için yeni bir Web API projesi oluşturmak için Core 6 ASP.NET kullanın, arayüz boş bir nesne veya boş bir dizi döndürebilir, eğer NULL dönerse, arayüz yanıtı: 204 İçerik Yok, ancak 204 normal yanıt kodunu temsil eder (bunda bir sorun yoktur), ancak,Bazı kapsüllenmiş HTTP çerçeveleri sadece 200 durum kodunu normal olarak kabul eder。 Bu yüzden 204 durum kodunu 200 durum koduna değiştir.
Arayüz kodu:
Test aşağıda gösterilmiştir:
Arayüz, varsayılan olarak eklenen 4 çıktı biçimlendirme uygulaması nedeniyle HTTP 204 İçerik Yok durum kodu döndürür ASP.NET Core:
- Microsoft.AspNetCore.Mvc.Formatters.HttpNoContentOutputFormatter
- Microsoft.AspNetCore.Mvc.Formatters.StringOutputFormatter
- Microsoft.AspNetCore.Mvc.Formatters.StreamOutputFormatter
- Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonOutputFormatter
HttpNoContentOutputFormatter için kaynak kodu aşağıdaki gibidir:
Not:Arayüz boş bir tür dönerse, Görev HTTP 200 durum kodu döndürürçünkü bu yöntem HttpNoContentOutputFormatter'daki CanWriteResult metoduna girmiyor!! BunaCanWriteResult yöntemi doğru dönerse, WriteAsync üzerinden geçerYöntem.
çözüm
HttpNoContentOutputFormatter uygulama sınıfını OutputFormatters koleksiyonundan aşağıdaki kodla kaldırın:
Arayüze tekrar erişin, aşağıdaki şekilde test edin:
Dönüş türü string?, 200 durum kodu döndürür ve hiç çıkışı yoktur Dönüş türü object?, 200 durum kodu döndürür ve null çıktısı verir
(Son)
|