2

我正在使用自托管 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%20HoldURL 被解码,但在使用 RESTful 路由时没有被解码。On Holdjson/syncreply

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

4

1 回答 1

1

ServiceStack 不对 PathInfo 进行 UrlDecode,它使用与HttpRequest.PathInfoASP.NET Request 对象返回的相同。如果将其更改为On+Hold ,您可能会获得更好的成功。

于 2012-10-02T15:30:48.137 回答