Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 3324|Répondre: 0

[Source] ASP.NET interface API Core(23) NULL renvoie le code d’état HTTP 204

[Copié le lien]
Publié sur 20/08/2023 15:27:55 | | | |
Exigences : Utilisez ASP.NET Core 6 pour créer un nouveau projet Web API afin de fournir des services externes, l’interface peut retourner un objet vide ou une chaîne vide, si elle retourne NULL, la réponse de l’interface est : 204 No Content, bien que 204 représente le code de réponse normal (il n’y a rien de mal avec cela), mais,Certains frameworks HTTP encapsulés ne considèrent que le code d’état 200 comme normal。 Donc changez le code de statut 204 pour un code de statut 200.

Code de l’interface :

Le test est présenté ci-dessous :



L’interface renvoie un code d’état HTTP 204 Sans contenu en raison des 4 implémentations de formatage de sortie ajoutées par défaut dans ASP.NET Core :

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


Le code source de HttpNoContentOutputFormatter est le suivant :



Note:Si l’interface renvoie un type void, Task renvoie un code d’état HTTP 200car elle n’entre pas dans la méthode CanWriteResult dans HttpNoContentOutputFormatter !! dans ce domaineSi la méthode CanWriteResult retourne true, elle passera par WriteAsyncMéthode.





solution

Supprimez la classe d’implémentation HttpNoContentOutputFormatter de la collection OutputFormatter avec le code suivant :

Accédez à nouveau à l’interface, testez comme suit :

Le type de retour est une chaîne ?, renvoie un code d’état 200, et n’a aucune sortie
Le type de retour est object ?, renvoie un code de statut 200, et affiche null

(Fin)




Précédent:Le conteneur Docker est basé sur aspnet :6.0 pour installer l’outil ping
Prochain:Le navigateur Windows Edge ouvre la solution de plantage avec IE
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com