private Dictionary<char, string> URLCharacterCodes = new Dictionary<char, string>() {
{'\\', "%5C"}, { '<', "3C" }, { '>', "3E" }, { '#', "23" },
{ '%', "25" }, { '{', "7B" }, { '}', "7D" }, { '|', "7C" },
{ '^', "5E" }, { '~', "7E" }, { '[', "5B" }, { ']', "5d" },
{ '`', "60" }, { ';', "3B" }, { '/', "2F" }, { '?', "3F" },
{ ':', "3A" }, { '@', "40" }, { '=', "3D" }, { '&', "26" },
{ '$', "24" }, { '+', "2B" }, { '"', "22" }, { ' ', "20" },
{ '\'', "27" }
};
/// <summary>
/// Parse a set of headers into a url query string
/// </summary>
/// <param name="Values"></param>
/// <returns>returns a query string</returns>
public string QueryString(NameValueCollection Values) {
string Query = string.Empty;
for (int a = 0; a < Values.Count; a++) {
string Key = string.Empty;
string Value = string.Empty;
foreach (char c in Values.GetKey(a))
if (URLCharacterCodes.ContainsKey(c))
Key += "%" + URLCharacterCodes[c];
else Key += c;
foreach (char c in Values.GetValues(a)[0])
if (URLCharacterCodes.ContainsKey(c))
Value += "%" + URLCharacterCodes[c];
else Value += c;
Query += string.Format("{0}={1}{2}", Key, Value, (a != (Values.Count - 1) ? "&" : ""));
}
return Query;
}
QueryString(new NameValueCollection() {
{ "q", "habbib hajif and habbob" }
});
private Dictionary<char, string> URLCharacterCodes = new Dictionary<char, string>() {
{'\\', "%5C"}, { '<', "3C" }, { '>', "3E" }, { '#', "23" },
{ '%', "25" }, { '{', "7B" }, { '}', "7D" }, { '|', "7C" },
{ '^', "5E" }, { '~', "7E" }, { '[', "5B" }, { ']', "5d" },
{ '`', "60" }, { ';', "3B" }, { '/', "2F" }, { '?', "3F" },
{ ':', "3A" }, { '@', "40" }, { '=', "3D" }, { '&', "26" },
{ '$', "24" }, { '+', "2B" }, { '"', "22" }, { ' ', "20" },
{ '\'', "27" }
};
/// <summary>
/// Parse a set of headers into a url query string
/// </summary>
/// <param name="Values"></param>
/// <returns>returns a query string</returns>
public string QueryString(NameValueCollection Values) {
string Query = string.Empty;
for (int a = 0; a < Values.Count; a++) {
string Key = string.Empty;
string Value = string.Empty;
foreach (char c in Values.GetKey(a))
if (URLCharacterCodes.ContainsKey(c))
Key += "%" + URLCharacterCodes[c];
else Key += c;
foreach (char c in Values.GetValues(a)[0])
if (URLCharacterCodes.ContainsKey(c))
Value += "%" + URLCharacterCodes[c];
else Value += c;
Query += string.Format("{0}={1}{2}", Key, Value, (a != (Values.Count - 1) ? "&" : ""));
}
return Query;
}
QueryString(new NameValueCollection() {
{ "q", "habbib hajif and habbob" }
});
Copyright © 2024, NextGenUpdate.
All Rights Reserved.