Nancy: 路线问题

创建于 2016-09-30  ·  11评论  ·  资料来源: NancyFx/Nancy

我有路线
Get["/{url}/{printer}"]

如果我将此网址发送到 Chrome 一切正常
localhost:8888/yandex.ru/HP Universal Printing PCL 6

然后我尝试发送这个 url,但路由不起作用。
localhost:8888/http://www.yandex.ru/HP Universal Printing PCL 6

我也尝试HttpUtility.UrlEncode("http://www.yandex.ru"); 但它也不起作用。
localhost:8888/http%3a%2f%2fwww.yandex.ru/HP Universal Printing PCL 6

404 - 未找到
找不到您请求的资源。

我们很抱歉 :-(

最有用的评论

所以双重编码对你不起作用@Radzhab? 嗯,应该是因为我们只解码了一次路由。 真奇怪。

今晚我有一些空闲时间,所以我会尝试重现此内容,看看是否有快速解决方法来解除对您的阻止。

所有11条评论

问题模板存在是有原因的。 它要求您填写详细信息,例如您使用的版本、运行的主机等,因此我们不必填写。

但在这里我们...问; 您使用的是什么主机和什么版本? :stuck_out_tongue_closed_eyes:

@Radzhab http://stackoverflow.com/questions/39785864/how-pass-url-params-to-route还有一个重复的堆栈溢出问题

这看起来像旧的“两次解码”?

双重编码可以解决这个问题:

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

当它没有被编码,或者被编码(一次)时,URL 被解码并最终在//上被分割。

我用的是1.4.1.0版本

还有主持人?

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

是的,这可能是影响自托管的双重解码问题。 这已在https://github.com/NancyFx/Nancy/pull/2462中修复

您要么必须更新到 2.0 预发布版本之一,要么对传入的值进行双重编码 :cry:

我安装了预发行版,但都是一样的 - 不起作用..我试试这个网址
本地主机:8888/https%3A%2F%2Fwww.google.com%2F2
本地主机:8888/https%3A%2F%2Fwww.google.com/F2

所以双重编码对你不起作用@Radzhab? 嗯,应该是因为我们只解码了一次路由。 真奇怪。

今晚我有一些空闲时间,所以我会尝试重现此内容,看看是否有快速解决方法来解除对您的阻止。

更新.......

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

juniormayhe picture juniormayhe  ·  4评论

cody82 picture cody82  ·  9评论

Hell0wor1d picture Hell0wor1d  ·  12评论

jlennox picture jlennox  ·  5评论

jgillich picture jgillich  ·  7评论