Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 3324|Svar: 0

[Kilde] ASP.NET Core(23) API-interface NULL returnerer HTTP 204 statuskode

[Kopier link]
Opslået på 20/08/2023 15.27.55 | | | |
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)




Tidligere:Docker-containeren er baseret på aspnet:6.0 til at installere ping-værktøjet
Næste:Windows Edge-browseren åbner crash-løsning med IE
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com