示例#1
0
        private string NormalizeUrl(string url)
        {
            int questionIndex = url.IndexOf('?');

            if (questionIndex == -1)
            {
                return(url);
            }

            var parameters = url.Substring(questionIndex + 1);
            var result     = new StringBuilder();

            result.Append(url.Substring(0, questionIndex + 1));

            bool hasQueryParameters = false;

            if (!String.IsNullOrEmpty(parameters))
            {
                string[] parts = parameters.Split('&');
                hasQueryParameters = parts.Length > 0;
                foreach (var part in parts)
                {
                    var nameValue = part.Split('=');
                    result.Append(nameValue[0] + "=");
                    if (nameValue.Length == 2)
                    {
                        result.Append(OAuthUtils.UrlEncode(nameValue[1]));
                    }
                    result.Append("&");
                }
                if (hasQueryParameters)
                {
                    result = result.Remove(result.Length - 1, 1);
                }
            }
            return(result.ToString());
        }
        public override string ToString()
        {
            var sb = new StringBuilder();

            sb.Append("OAuth ");
            sb.AppendFormat("realm=\"{0}\", ", Realm);
            sb.AppendFormat("{0}=\"{1}\", ", OAuthProtocolParameter.ConsumerKey.GetStringValue(), OAuthUtils.UrlEncode(ConsumerKey));
            sb.AppendFormat("{0}=\"{1}\", ", OAuthProtocolParameter.SignatureMethod.GetStringValue(), SignatureMethod);
            sb.AppendFormat("{0}=\"{1}\", ", OAuthProtocolParameter.Signature.GetStringValue(), OAuthUtils.UrlEncode(Signature));
            sb.AppendFormat("{0}=\"{1}\", ", OAuthProtocolParameter.Timestamp.GetStringValue(), Timestamp);
            sb.AppendFormat("{0}=\"{1}\", ", OAuthProtocolParameter.Nounce.GetStringValue(), OAuthUtils.UrlEncode(Nounce));
            sb.AppendFormat("{0}=\"{1}\", ", OAuthProtocolParameter.Version.GetStringValue(), Version);
            if (!String.IsNullOrEmpty(Callback))
            {
                sb.AppendFormat("{0}=\"{1}\", ", OAuthProtocolParameter.Callback.GetStringValue(), OAuthUtils.UrlEncode(Callback));
            }
            if (!String.IsNullOrEmpty(Token))
            {
                sb.AppendFormat("{0}=\"{1}\", ", OAuthProtocolParameter.Token.GetStringValue(), OAuthUtils.UrlEncode(Token));
            }
            if (!String.IsNullOrEmpty(Verifier))
            {
                sb.AppendFormat("{0}=\"{1}\", ", OAuthProtocolParameter.Verifier.GetStringValue(), OAuthUtils.UrlEncode(Verifier));
            }

            sb = sb.Remove(sb.Length - 2, 2);
            return(sb.ToString());
        }