c# - solicitud - +(más) iniciar sesión en el enrutamiento de la API web
web api tutorial español (3)
Estoy trabajando con un proyecto web api de asp.net, y tengo que pasar un número de móvil a través de una publicación. Pero no puedo devolver un signo más.
mi ruta:
config.Routes.MapHttpRoute(
name: "SmsRoute",
routeTemplate: "rest/sms/{country}/{company}/phone/{mobilenumber}",
defaults: new { controller = "Sms", action = "PostSms" });
controlador:
public HttpResponseMessage PostSms(string country, string company, string mobilenumber)
{
return Request.CreateResponse( HttpStatusCode.Created );
}
Cuando ejecuto este método de publicación en fiddler:
http://index.html/rest/sms/se/company/phone/46700101010/messages/out
Estoy recibiendo esta respuesta:
Pero quiero que me muestre el signo más.
Codifica el +
:
Reemplace su entrada de feedle con este:
http://index.html/rest/sms/se/company/phone/%2B46700101010/messages/out
Consulte también: AJAX POST y el signo más (+) - ¿Cómo codificar?
Esta es una anomalía común a la que nos enfrentamos al agregar parámetros en las direcciones URL. Aquí puede tener una pista de lo que es su OP y lo que podría necesitar en una ejecución posterior
Puede tener muchas opciones como para +
puede codificar en su archivo de script java usando
encodeURIComponent();
Y también para su facilidad si desea agregar caracteres especiales en su url como a .
luego simplemente configure la propiedad relaxedUrlToFileSystemMapping
en su web.config
<system.web>
<httpRuntime relaxedUrlToFileSystemMapping="true" />
O simplemente puede agregar o eliminar algunos de los caracteres para bloquear / permitir el uso de requestPathInvalidCharacters
en su web.config
<httpRuntime requestPathInvalidCharacters="<,>,*,%,&,:,/,?"/>
IIS evita que los signos de más se encuentren en elementos de ruta de URL.
Para deshabilitar esta característica, en web.config
:
<system.webServer>
<security>
<requestFiltering allowDoubleEscaping="true" />
</security>
</system.webServer>