diff options
Diffstat (limited to 'MediaBrowser.Api/BaseApiService.cs')
| -rw-r--r-- | MediaBrowser.Api/BaseApiService.cs | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/MediaBrowser.Api/BaseApiService.cs b/MediaBrowser.Api/BaseApiService.cs index 3ff432d74..ce3e963b7 100644 --- a/MediaBrowser.Api/BaseApiService.cs +++ b/MediaBrowser.Api/BaseApiService.cs @@ -6,9 +6,9 @@ using MediaBrowser.Controller.Net; using MediaBrowser.Controller.Session; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Logging; -using ServiceStack.Text.Controller; using ServiceStack.Web; using System; +using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -275,8 +275,8 @@ namespace MediaBrowser.Api protected string GetPathValue(int index) { - var pathInfo = PathInfo.Parse(Request.PathInfo); - var first = pathInfo.GetArgumentValue<string>(0); + var pathInfo = Parse(Request.PathInfo); + var first = pathInfo[0]; // backwards compatibility if (string.Equals(first, "mediabrowser", StringComparison.OrdinalIgnoreCase) || @@ -285,7 +285,24 @@ namespace MediaBrowser.Api index++; } - return pathInfo.GetArgumentValue<string>(index); + return pathInfo[index]; + } + + private static List<string> Parse(string pathUri) + { + var actionParts = pathUri.Split(new[] { "://" }, StringSplitOptions.None); + + var pathInfo = actionParts[actionParts.Length - 1]; + + var optionsPos = pathInfo.LastIndexOf('?'); + if (optionsPos != -1) + { + pathInfo = pathInfo.Substring(0, optionsPos); + } + + var args = pathInfo.Split('/'); + + return args.Skip(1).ToList(); } /// <summary> |
