Example #1
0
        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);
        }
Example #2
0
        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()));
        }
Example #3
0
        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());
        }