aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/BaseApiService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/BaseApiService.cs')
-rw-r--r--MediaBrowser.Api/BaseApiService.cs25
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>