public static FormParameters OAuthDecode(string message) { FormParameters form = new FormParameters(); message = message.TrimStart('?'); if (String.IsNullOrWhiteSpace(message)) { return(form); } foreach (var pair in message.Split('&')) { string[] parts = pair.Split('='); string key = OAuthClientBase.Decode(parts[0]); string value = parts.Length > 1 ? OAuthClientBase.Decode(parts[1]) : String.Empty; form.Add(key, value); } return(form); }
public string SignatureEncode(Encoding encoding = null) { if (encoding == null) { encoding = Encoding.UTF8; } StringBuilder sb = new StringBuilder(); for (int i = 0; i < Count; i++) { // tumblr does not correctly handle encoded parameter names :( //sb.Append(OAuthClientBase.Encode(this[i].Key, encoding)); sb.Append(this[i].Key); // workaround for tumblr sb.Append('='); sb.Append(OAuthClientBase.Encode(this[i].Value)); if (i < Count - 1) { sb.Append('&'); } } return(OAuthClientBase.Encode(sb.ToString())); }
public string HeaderEncode(Encoding encoding = null) { if (encoding == null) { encoding = Encoding.UTF8; } StringBuilder sb = new StringBuilder(); sb.Append(@"OAuth "); // TODO: realm for (int i = 0; i < Count; i++) { sb.Append(OAuthClientBase.Encode(this[i].Key, encoding)); sb.Append('='); sb.Append('"'); sb.Append(OAuthClientBase.Encode(this[i].Value)); sb.Append('"'); if (i < Count - 1) { sb.Append(','); } } return(sb.ToString()); }