[Modify] Add it
This commit is contained in:
parent
7cb80a676d
commit
54440d1211
@ -48,6 +48,45 @@ namespace WebSocketSharp.Net
|
|||||||
{
|
{
|
||||||
internal sealed class QueryStringCollection : NameValueCollection
|
internal sealed class QueryStringCollection : NameValueCollection
|
||||||
{
|
{
|
||||||
|
public static QueryStringCollection Parse (string query, Encoding encoding)
|
||||||
|
{
|
||||||
|
var ret = new QueryStringCollection ();
|
||||||
|
|
||||||
|
if (query == null)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
var len = query.Length;
|
||||||
|
if (len == 0)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
if (len == 1 && query[0] == '?')
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
if (query[0] == '?')
|
||||||
|
query = query.Substring (1);
|
||||||
|
|
||||||
|
if (encoding == null)
|
||||||
|
encoding = Encoding.UTF8;
|
||||||
|
|
||||||
|
var components = query.Split ('&');
|
||||||
|
foreach (var component in components) {
|
||||||
|
var i = component.IndexOf ('=');
|
||||||
|
if (i < 0) {
|
||||||
|
ret.Add (null, HttpUtility.UrlDecode (component, encoding));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
var name = HttpUtility.UrlDecode (component.Substring (0, i), encoding);
|
||||||
|
var val = component.Length > i + 1
|
||||||
|
? HttpUtility.UrlDecode (component.Substring (i + 1), encoding)
|
||||||
|
: String.Empty;
|
||||||
|
|
||||||
|
ret.Add (name, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
public override string ToString ()
|
public override string ToString ()
|
||||||
{
|
{
|
||||||
if (Count == 0)
|
if (Count == 0)
|
||||||
|
Loading…
Reference in New Issue
Block a user