Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 3324|Svar: 0

[Källa] ASP.NET Core(23) API-gränssnittet NULL returnerar HTTP 204-statuskod

[Kopiera länk]
Publicerad på 2023-08-20 15:27:55 | | | |
Krav: Använd ASP.NET Core 6 för att skapa ett nytt webb-API-projekt för att tillhandahålla externa tjänster, gränssnittet kan returnera ett tomt objekt eller en tom sträng, om det returnerar NULL är gränssnittets svar: 204 Inget innehåll, även om 204 representerar den normala svarskoden (det är inget fel på den), men,Vissa inkapslade HTTP-ramverk betraktar endast statuskoden 200 som normal。 Så byt statuskod 204 till statuskod 200.

Gränssnittskod:

Testet visas nedan:



Gränssnittet returnerar en HTTP 204 No Content-statuskod tack vare de fyra utdataformateringsimplementationer som lagts till 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


Källkoden för HttpNoContentOutputFormatter är följande:



Not:Om gränssnittet returnerar en void-typ returnerar Task en HTTP 200-statuskodeftersom den inte går in i CanWriteResult-metoden i HttpNoContentOutputFormatter!! därinOm CanWriteResult-metoden returnerar true kommer den att gå via WriteAsyncMetod.





lösning

Ta bort HttpNoContentOutputFormatter-implementeringsklassen från OutputFormatters-samlingen med följande kod:

Gå in i gränssnittet igen, testa enligt följande:

Returtypen är string?, returnerar en statuskod 200 och har ingen utdata
Returtypen är objekt?, returnerar en statuskod på 200 och ger ut null

(Slut)




Föregående:Docker-containern är baserad på aspnet:6.0 för att installera pingverktyget
Nästa:Windows Edge-webbläsaren öppnar kraschlösningar med IE
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com