1

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

当我浏览到:

/test/dkend%2Ftest

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

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

ServiceStack 是对 dkend/test 进行 URL 解码的 'dkend%2Ftest'

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

/test/dkend%2Ftest

作为路径。

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

4

1 回答 1

4

url 在到达 ServiceStack 之前由 ASP.NET 自动解码,即这将在不会自动解码路径信息 url 的 HttpListener 主机中工作。

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

/test?name=dkend%2Ftest
于 2013-11-08T23:42:45.297 回答