我在/ 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'。
答案 0 :(得分:4)
在到达ServiceStack之前,ASP.NET会自动解码URL,即这可以在HttpListener主机中运行,这些主机不会自动解码路径信息URL。
解决此问题的一种方法是使用queryString(即代替pathInfo)来调用服务,例如:
/test?name=dkend%2Ftest