ApexLumia.Twitter.generateAuthorizationHeader C# (CSharp) Метод

generateAuthorizationHeader() приватный Метод

Generate the OAuth HTTP Authorization header for twitter requests
private generateAuthorizationHeader ( string url, string method, string>.Dictionary otherparams ) : string
url string The URL the request will be made to.
method string The method of the request.
otherparams string>.Dictionary Any other parameters specific to the request.
Результат string
        private string generateAuthorizationHeader(string url, string method, Dictionary<string, string> otherparams)
        {

            var parameters = new Dictionary<string, string>();
            parameters.Add("oauth_version", "1.0");
            parameters.Add("oauth_consumer_key", _consumerkey);
            parameters.Add("oauth_nonce", Utils.uniqueAlphanumericString());
            parameters.Add("oauth_signature_method", "HMAC-SHA1");
            parameters.Add("oauth_timestamp", Utils.unix_timestamp().ToString());
            parameters.Add("oauth_token", _accesstoken);

            foreach (var item in otherparams)
            {
                parameters[item.Key] = item.Value;
            }

            parameters = parameters.OrderBy(x => x.Key).ToDictionary(v => v.Key, v => v.Value);
            

            string outputString = method + "&" + Utils.UrlEncodeRelaxed(url) + "&";
            foreach (var parameter in parameters)
            {
                outputString += Utils.UrlEncodeRelaxed(parameter.Key + "=" + parameter.Value + "&");
            }
            outputString = outputString.Substring(0, outputString.Length - 3);

            string signingKey = Utils.UrlEncodeRelaxed(_consumersecret) + "&" + Utils.UrlEncodeRelaxed(_accesssecret);
            byte[] hmacsha1 = Utils.hmacsha1ify(outputString, signingKey);
            string signature = Convert.ToBase64String(hmacsha1);

            string header = "OAuth ";
            header += "oauth_consumer_key=\"" + Utils.UrlEncodeRelaxed(parameters["oauth_consumer_key"]) + "\", ";
            header += "oauth_nonce=\"" + Utils.UrlEncodeRelaxed(parameters["oauth_nonce"]) + "\", ";
            header += "oauth_signature=\"" + Utils.UrlEncodeRelaxed(signature) + "\", ";
            header += "oauth_signature_method=\"HMAC-SHA1\", ";
            header += "oauth_timestamp=\"" + Utils.UrlEncodeRelaxed(parameters["oauth_timestamp"]) + "\", ";
            header += "oauth_token=\"" + Utils.UrlEncodeRelaxed(parameters["oauth_token"]) + "\", ";
            header += "oauth_version=\"1.0\"";

            return header;
        }