ServiceStack不是RESTful路由中的URL解码路由参数

时间:2012-10-02 10:21:38

标签: urlencode servicestack

我正在使用自托管ServiceStack提供与票务系统集成的API,并定义了以下路由:

Routes
    .Add<TicketsWithStatus>("tickets/{Status}")
    .Add<TicketStatusCounts>("tickets");

当状态包含空格时,我遇到第一个路由的URL编码问题。如果我浏览http://myservicebase/json/syncreply/TicketsWithStatus?Status=On%20Hold,我会收到我期待的回复。但是,如果我使用RESTful路由http://mysevicebase/tickets/On%20Hold,我就不会得到任何结果。

调试我的应用程序,我可以看到On%20HoldOn Hold调用的情况下被解码为json/syncreply,但在使用RESTful路由时未被解码。 / p>

如何通过RESTful路由调用我的服务时,确保正确解码status属性?

1 个答案:

答案 0 :(得分:1)

ServiceStack没有UrlDecode PathInfo,它使用ASP.NET Request对象返回的相同HttpRequest.PathInfo。如果将其更改为开启+保持,则可能会取得更好的成功。