Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 3324|Odpowiedź: 0

[Źródło] ASP.NET interfejs API Core(23) NULL zwraca kod statusu HTTP 204

[Skopiuj link]
Opublikowano 20.08.2023 15:27:55 | | | |
Wymagania: Użyj ASP.NET Core 6 do utworzenia nowego projektu Web API do świadczenia usług zewnętrznych, interfejs może zwracać pusty obiekt lub pusty ciąg znaków, jeśli zwraca NULL, odpowiedź interfejsu to: 204 No Content, chociaż 204 oznacza normalny kod odpowiedzi (nie ma z nim nic złego), ale,Niektóre enkapsulowane frameworki HTTP uznają za normalny tylko kod statusu 200。 Więc zmień kod statusu 204 na kod 200.

Kod interfejsu:

Test przedstawiono poniżej:



Interfejs zwraca kod statusu HTTP 204 No Content dzięki 4 implementacjom formatowania wyjściowych domyślnie dodanym w ASP.NET Core:

  • Microsoft.AspNetCore.Mvc.Formatters.HttpNoContentOutputFormatter
  • Microsoft.AspNetCore.Mvc.Formatters.StringOutputFormatter
  • Microsoft.AspNetCore.Mvc.Formatters.StreamOutputFormatter
  • Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonOutputFormatter


Kod źródłowy HttpNoContentOutputFormatter jest następujący:



Nuta:Jeśli interfejs zwraca typ void, Task zwraca kod statusu HTTP 200ponieważ nie wchodzi w metodę CanWriteResult w HttpNoContentOutputFormatter!! w tymJeśli metoda CanWriteResult zwraca true, przejdzie przez WriteAsyncMetoda.





rozwiązanie

Usuń klasę implementacyjną HttpNoContentOutputFormatter z kolekcji OutputFormatters, używając następującego kodu:

Ponownie wejdź do interfejsu, testuj następująco:

Typ zwrotu to string?, zwraca kod statusu 200 i nie ma żadnego wyjścia
Typ zwrotu to object?, zwraca kod statusu 200 i generuje null

(Koniec)




Poprzedni:Kontener Dockera oparty jest na aspnet:6.0 do instalacji narzędzia ping
Następny:Przeglądarka Windows Edge otwiera rozwiązanie awarii za pomocą IE
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com