2

チケット システムと統合するための API を提供するために自己ホスト型の ServiceStack を使用しており、次のルートを定義しています。

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 ルート経由でサービスを呼び出すときに、ステータス プロパティが適切にデコードされるようにするにはどうすればよいですか?

4

1 に答える 1

1

ServiceStack は PathInfo を UrlDecode しません。ASP.NET HttpRequest.PathInfoRequest オブジェクトが返すものと同じものを使用します。On+Holdに変更すると、成功する可能性があります。

于 2012-10-02T15:30:48.137 に答える