Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 3324|Svare: 0

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

[Kopier lenke]
Publisert på 20.08.2023 15:27:55 | | | |
Krav: Bruk ASP.NET Core 6 for å opprette et nytt Web API-prosjekt for å tilby eksterne tjenester, grensesnittet kan returnere et tomt objekt eller en tom streng, hvis det returnerer NULL, er grensesnittsvaret: 204 Ingen innhold, selv om 204 representerer den normale svarkoden (det er ingenting galt med den), men,Noen innkapslede HTTP-rammeverk vil bare anse 200-statuskoden som normal。 Så bytt statuskode 204 til statuskode 200.

Grensesnittkode:

Testen vises nedenfor:



Grensesnittet returnerer en HTTP 204 No Content-statuskode på grunn av de 4 utdataformateringsimplementasjonene som er lagt til 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 for HttpNoContentOutputFormatter er som følger:



Notat:Hvis grensesnittet returnerer en void-type, returnerer Task en HTTP 200-statuskodefordi den ikke går inn i CanWriteResult-metoden i HttpNoContentOutputFormatter!! DertilHvis CanWriteResult-metoden returnerer sann, vil den gå gjennom WriteAsyncMetode.





løsning

Fjern implementeringsklassen HttpNoContentOutputFormatter fra OutputFormatters-samlingen med følgende kode:

Få tilgang til grensesnittet igjen, test som følger:

Returtypen er string?, returnerer en 200-statuskode, og har ingen utdata
Returtypen er objekt?, returnerer en statuskode på 200, og gir ut null

(Slutt)




Foregående:Docker-containeren er basert på aspnet:6.0 for å installere ping-verktøyet
Neste:Windows Edge-nettleseren åpner krasjløsning med IE
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com