Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 3324|Risposta: 0

[Fonte] ASP.NET interfaccia API Core(23) NULL restituisce il codice di stato HTTP 204

[Copiato link]
Pubblicato su 20/08/2023 15:27:55 | | | |
Requisiti: Usa ASP.NET Core 6 per creare un nuovo progetto Web API che fornisca servizi esterni, l'interfaccia può restituire un oggetto vuoto o una stringa vuota; se restituisce NULL, la risposta dell'interfaccia è: 204 No Content, anche se 204 rappresenta il codice di risposta normale (non c'è nulla di sbagliato in esso), ma,Alcuni framework HTTP incapsulati considereranno normale solo il codice di stato 200。 Quindi cambia il codice di stato 204 con uno 200.

Codice dell'interfaccia:

Il test è mostrato di seguito:



L'interfaccia restituisce un codice di stato HTTP 204 No Content a causa delle 4 implementazioni di formattazione di output aggiunte di default in ASP.NET Core:

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


Il codice sorgente di HttpNoContentOutputFormatter è il seguente:



Nota:Se l'interfaccia restituisce un tipo void, Task restituisce un codice di stato HTTP 200perché non entra nel metodo CanWriteResult in HttpNoContentOutputFormatter!! in cuiSe il metodo CanWriteResult restituisce true, passerà attraverso WriteAsyncMetodo.





soluzione

Rimuovi la classe di implementazione HttpNoContentOutputFormatter dalla collezione OutputFormatter con il seguente codice:

Accedi nuovamente all'interfaccia, testa come segue:

Il tipo di ritorno è string?, restituisce un codice di stato 200 e non ha alcun output
Il tipo di ritorno è oggetto?, restituisce un codice di stato 200 e produce null

(Fine)




Precedente:Il container Docker si basa su aspnet:6.0 per installare lo strumento ping
Prossimo:Il browser Windows Edge apre la soluzione di crash con IE
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com