Adommagent le caractère de point dans MVC Web API 2 Paramètres de demande
Dans MVC Web API 2, il est pratique de travailler avec des paramètres de demande qui adhèrent à un format cohérent. Cependant, il est parfois nécessaire de gérer les demandes contenant des caractères spéciaux, comme une période (.). Cet article explore le problème de l'inclusion du caractère de point dans les paramètres de demande et propose une solution pratique.
Problème sous-jacent
L'utilisateur avait l'intention d'autoriser les demandes dans le Format:
http://somedomain.com/api/people/staff.33311
Cependant, lorsqu'ils ont essayé cela, ils ont rencontré une erreur 404. Cela s'est produit parce que le routage par défaut de l'API Web est conçu pour reconnaître les segments dans le chemin d'établissement d'URL en tant que noms de contrôleur et d'action, avec des paramètres facultatifs qui les suivent. Le caractère DOT dans l'URL de la demande provoque une ambiguïté car elle est analysée soit dans le cadre du nom d'action ou d'un paramètre de requête. Une façon d'y parvenir est d'ajouter une barre oblique de fuite à l'URL, comme ceci:
http://somedomain.com/api/people/staff.33311/ La tronçonneuse s'assure que le paramètre est traité comme une corde de requête au lieu de la partie de la voie url. Cela permet à l'API Web d'analyser correctement la demande et de le mapper à l'action prévue.
Considérations d'implémentation
http://somedomain.com/api/people/staff.33311/
En fonction de la configuration du serveur, vous devrez également ajuster web.config pour autoriser les points dans le chemin d'URL. Cela peut être réalisé en définissant l'attribut "allowDotsInPath" de l'élément httpruntime sur true, comme illustré ci-dessous:
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3