/// <summary> /// Creates a request elements concatentation value to send with a request. /// This is also known as the signature base. /// </summary> /// <seealso href="http://oauth.net/core/1.0#rfc.section.9.1.3"/> /// <seealso href="http://oauth.net/core/1.0#sig_base_example"/> /// <param name="method">The request's HTTP method type</param> /// <param name="url">The request URL</param> /// <param name="parameters">The request's parameters</param> /// <returns>A signature base string</returns> public static string ConcatenateRequestElements(string method, string url, WebParameterCollection parameters) { var sb = new StringBuilder(); // Separating &'s are not URL encoded var requestMethod = string.Concat(method.ToUpper(), "&"); var uri = new Uri(url); var requestUrl = string.Concat(UrlEncodeRelaxed(ConstructRequestUrl(uri)), "&"); parameters.AddRange(WebUtils.ParseQueryString(uri)); var requestParameters = UrlEncodeRelaxed(NormalizeRequestParameters(parameters)); sb.Append(requestMethod); sb.Append(requestUrl); sb.Append(requestParameters); return(sb.ToString()); }