Krav: Brug ASP.NET Core 6 til at oprette et nyt Web API-projekt til at levere eksterne tjenester, grænsefladen kan returnere et tomt objekt eller en tom streng, hvis den returnerer NULL, er interface-svaret: 204 Intet indhold, selvom 204 repræsenterer den normale svarkode (der er intet galt med den), men,Nogle indkapslede HTTP-frameworks vil kun betragte statuskoden 200 som normal。 Så ændr statuskoden 204 til en statuskode 200.
Interface-kode:
Testen vises nedenfor:
Grænsefladen returnerer en HTTP 204 No Content-statuskode på grund af de 4 output-formateringsimplementeringer, der er tilføjet som standard i ASP.NET Core:
- Microsoft.AspNetCore.Mvc.Formatters.HttpNoContentOutputFormatter
- Microsoft.AspNetCore.Mvc.Formatters.StringOutputFormatter
- Microsoft.AspNetCore.Mvc.Formatters.StreamOutputFormatter
- Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonOutputFormatter
Kildekoden til HttpNoContentOutputFormatter er som følger:
Seddel:Hvis interfacet returnerer en void-type, returnerer Task en HTTP 200-statuskodefordi den ikke går ind i CanWriteResult-metoden i HttpNoContentOutputFormatter!! derindHvis CanWriteResult-metoden returnerer sand, vil den gå gennem WriteAsyncMetode.
opløsning
Fjern implementeringsklassen HttpNoContentOutputFormatter fra OutputFormatters-samlingen med følgende kode:
Adgang til interfacet igen, test som følger:
Returtypen er string?, returnerer en statuskode på 200 og har ingen output Returtypen er objekt?, returnerer en 200-statuskode og udskriver null
(Slut)
|