Maison >développement back-end >C++ >Comment gérer les URL avec des caractères spéciaux dans le routage ASP.NET Web API 2 ?
Problème :
Tentative d'accès à des ressources à l'aide d'URL contenant des caractères spéciaux, tels que points (`.') dans le segment de chemin, entraîne une "Erreur HTTP 404.0 - Introuvable" erreur.
Configuration :
L'exemple de contrôleur et WebApiConfig fournis dans la question :
// PeopleController.cs public class PeopleController : ApiController { // ... } // WebApiConfig.cs public static void Register(HttpConfiguration config) { // ... config.Routes.MapHttpRoute(name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); }
Solution :
À autoriser les caractères spéciaux dans le segment de chemin, tels que les points, modifier la route WebApiConfig comme suit :
config.Routes.MapHttpRoute(name: "DefaultApi", routeTemplate: "api/{controller}/{id}/{*path}", defaults: new { id = RouteParameter.Optional, path = RouteParameter.Optional } );
Ce modèle d'itinéraire ajoute un paramètre d'itinéraire fourre-tout nommé {*path} qui capture tous les segments de chemin restants, y compris les caractères spéciaux comme les points.
Exemple :
http://somedomain.com/api/people/staff.33311/
En ajoutant une barre oblique (/) à la fin de l'URL, la requête peut être acheminée vers l'action du contrôleur qui gère le segment de chemin, dans ce cas staff.33311.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!