Nancy: Problema de ruta

Creado en 30 sept. 2016  ·  11Comentarios  ·  Fuente: NancyFx/Nancy

Tengo ruta
Get["/{url}/{printer}"]

Si envío esta URL a Chrome, todo funciona bien
localhost:8888/yandex.ru/HP Universal Printing PCL 6

Luego intento enviar esta URL, pero la ruta no funciona.
localhost:8888/http://www.yandex.ru/HP Universal Printing PCL 6

También pruebo HttpUtility.UrlEncode ("http://www.yandex.ru"); pero tampoco funciona.
localhost:8888/http%3a%2f%2fwww.yandex.ru/HP Universal Printing PCL 6

404 No encontrado
No se puede encontrar el recurso que ha solicitado.

Lo lamentamos :-(

Comentario más útil

Entonces, ¿la codificación doble no funcionó para ti @Radzhab? Mmmm debería porque solo decodificamos la ruta una vez. Eso es extraño.

Tengo algo de tiempo libre esta noche, así que intentaré reproducir esto y ver si hay una solución rápida para desbloquearlo.

Todos 11 comentarios

La plantilla de problemas está ahí por una razón. Le pide que complete los detalles, como qué versiones está utilizando, qué hospedan su ejecución, etc., para que no tengamos que hacerlo.

Pero aquí estamos ... preguntando; ¿Qué host y qué versiones estás usando? : ojos_cerrados_ lengua_atacada:

También hay una pregunta duplicada de Stack Overflow para esto por @Radzhab http://stackoverflow.com/questions/39785864/how-pass-url-params-to-route

¿Esto se parece a la vieja "decodificación dos veces"?

La codificación doble resolvería el problema:

localhost:8888/http://www.yandex.ru/HP Universal Printing PCL 6

Cuando esto no está codificado o está codificado (una vez), la URL se decodifica y termina dividiéndose en // .

Yo uso la versión 1.4.1.0

¿Y el anfitrión?

https://gist.github.com/Radzhab/46abc95cdfe4b018ad3c9a8dae7003ca
Nancy.dll 1.4.1
Nancy.Hosting.Self.dll 1.4.1
Mono.Posix.dll 4.0.0

Sí, ese es probablemente el problema de la doble decodificación que afectó al autohospedaje. Esto se solucionó en https://github.com/NancyFx/Nancy/pull/2462

Tienes que actualizar a una de las versiones preliminares 2.0 o codificar dos veces el valor que estás pasando: llorar:

He instalado el pre-lanzamiento, pero de todos modos, no funciona. Intento esta URL.
localhost: 8888 / https% 3A% 2F% 2Fwww.google.com% 2F2
y localhost: 8888 / https% 3A% 2F% 2Fwww.google.com / F2

Entonces, ¿la codificación doble no funcionó para ti @Radzhab? Mmmm debería porque solo decodificamos la ruta una vez. Eso es extraño.

Tengo algo de tiempo libre esta noche, así que intentaré reproducir esto y ver si hay una solución rápida para desbloquearlo.

actualizar.......

¿Fue útil esta página
0 / 5 - 0 calificaciones