ServiceStack URL解码路径,为什么?

时间:2013-11-08 22:53:26

标签: servicestack

我在/ test / {name}有一条路线。

当我浏览到:

/测试/ dkend%2Ftest

在ServiceStack中,我收到了“找不到请求的处理程序:”错误,其中包含:

Request.Url.LocalPath:/ test / dkend / test

ServiceStack是对dkend / test

进行URL解码'dkend%2Ftest'

如果我向asp.net http模块发出请求并查看原始URL,我会得到:

/测试/ dkend%2Ftest

作为路径。

ServiceStack URL解码路径是否有原因?我想在{name}参数中找到'dkend%2Ftest'。

1 个答案:

答案 0 :(得分:4)

在到达ServiceStack之前,ASP.NET会自动解码URL,即这可以在HttpListener主机中运行,这些主机不会自动解码路径信息URL。

解决此问题的一种方法是使用queryString(即代替pathInfo)来调用服务,例如:

/test?name=dkend%2Ftest