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 ?

Comment gérer les URL avec des caractères spéciaux dans le routage ASP.NET Web API 2 ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-05 03:19:42804parcourir

How to Handle URLs with Special Characters in ASP.NET Web API 2 Routing?

Routage avec des caractères spéciaux dans MVC 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn