Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 3324|Yanıt: 0

[Kaynak] ASP.NET Core(23) API arayüzü NULL HTTP 204 durum kodu döndürür

[Bağlantıyı kopyala]
Yayınlandı 20.08.2023 15:27:55 | | | |
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)




Önceki:Docker konteyneri, ping aracını kurmak için aspnet:6.0 tabanlı
Önümüzdeki:Windows Edge tarayıcısı IE ile çökme çözümünü açıyor
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com