From 959baf9ff2d62755e02bce75e5b4ff7f7898e10b Mon Sep 17 00:00:00 2001 From: sta Date: Thu, 16 Aug 2018 21:20:36 +0900 Subject: [PATCH] [Modify] Polish it --- websocket-sharp/Net/QueryStringCollection.cs | 25 +++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/websocket-sharp/Net/QueryStringCollection.cs b/websocket-sharp/Net/QueryStringCollection.cs index 550502f0..12ecbd34 100644 --- a/websocket-sharp/Net/QueryStringCollection.cs +++ b/websocket-sharp/Net/QueryStringCollection.cs @@ -64,7 +64,7 @@ namespace WebSocketSharp.Net if (len == 0) return ret; - if (len == 1 && query[0] == '?') + if (query == "?") return ret; if (query[0] == '?') @@ -75,15 +75,34 @@ namespace WebSocketSharp.Net var components = query.Split ('&'); foreach (var component in components) { + len = component.Length; + if (len == 0) + continue; + + if (component == "=") + continue; + var i = component.IndexOf ('='); if (i < 0) { ret.Add (null, HttpUtility.UrlDecode (component, encoding)); continue; } + if (i == 0) { + ret.Add ( + null, HttpUtility.UrlDecode (component.Substring (1), encoding) + ); + + continue; + } + var name = HttpUtility.UrlDecode (component.Substring (0, i), encoding); - var val = component.Length > i + 1 - ? HttpUtility.UrlDecode (component.Substring (i + 1), encoding) + + var start = i + 1; + var val = start < len + ? HttpUtility.UrlDecode ( + component.Substring (start), encoding + ) : String.Empty; ret.Add (name, val);