public static string UrlEncodeRelaxed(string value) { string text = Uri.EscapeDataString(value); return(text.Replace("(", OAuthTools.PercentEncode("(")).Replace(")", OAuthTools.PercentEncode(")"))); }
public static string UrlEncodeStrict(string value) { string text = value.Where((char c) => !"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890-._~".Contains(c) && c != '%').Aggregate(value, (string current, char c) => current.Replace(c.ToString(), OAuthTools.PercentEncode(c.ToString()))); return(text.Replace("%%", "%25%")); }
/// <summary> /// URL encodes a string based on section 5.1 of the OAuth spec. /// Namely, percent encoding with [RFC3986], avoiding unreserved characters, /// upper-casing hexadecimal characters, and UTF-8 encoding for text value pairs. /// </summary> /// <param name="value"></param> /// <seealso href="http://oauth.net/core/1.0#encoding_parameters" /> public static string UrlEncodeStrict(string value) { return(value.Where <char>((Func <char, bool>)(c => { if (!"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890-._~".Contains <char>(c)) { return c != '%'; } return false; })).Aggregate <char, string>(value, (Func <string, char, string>)((current, c) => current.Replace(c.ToString(), OAuthTools.PercentEncode(c.ToString())))).Replace("%%", "%25%")); }