public static string ToHeaderString(this IList<EmailContact> contacts) { if (contacts.Count == 0) { return string.Empty; } using (var sw = new StringWriter()) { foreach (var contact in contacts) { sw.WriteFormat("{0} <{1}>,", contact.Name, contact.Address); } sw.TrimEnd(','); return sw.ToString(); } }
private static string FormatHeaderFieldsCommand(IEnumerable<string> headers) { using (var sw = new StringWriter()) { sw.Write("HEADER.FIELDS ("); foreach (var header in headers) { sw.Write(header); sw.Write(Characters.Space); } sw.TrimEnd(Characters.Space); sw.Write(")"); return sw.ToString(); } }
public WebResponse MakeRequest() { var requestParams = CreateOAuthRequestParams(); if (_sign) { var signature = OAuthSignature.Create(this, requestParams); requestParams.Add(OAuthParameters.OAuthSignature, signature); } string url; using (var sw = new StringWriter()) { sw.Write(RequestEndpoint.AbsoluteUri); sw.Write("?"); var sorted = new SortedDictionary<string, string>(); foreach (var p in Parameters) { sorted.Add(p.Key, p.Value); } foreach (var p in requestParams) { sorted.Add(p.Key, p.Value); } foreach (var p in sorted) { sw.Write("{0}={1}", p.Key, p.Key == OAuthParameters.OAuthVerifier ? HttpEncoder.UrlEncode(p.Value) : p.Value); sw.Write("&"); } // if params have been written the last item will be a '&' else it will be a '?'. sw.TrimEnd('&'); sw.TrimEnd('?'); url = sw.ToString(); } var request = (HttpWebRequest) WebRequest.Create(url); request.Accept = "*/*"; request.Method = "GET"; request.Headers.Add(HttpRequestHeader.Authorization, "OAuth"); return request.GetResponse(); }
public Uri GetAuthorizationUri() { string url; using (var sw = new StringWriter()) { sw.Write(RequestEndpoint.AbsoluteUri); if (Parameters.Count > 0) { sw.Write("?"); foreach (var p in Parameters) { sw.WriteFormat("{0}={1}&", p.Key, p.Value); } sw.TrimEnd('&'); } url = sw.ToString(); } var request = (HttpWebRequest) WebRequest.Create(url); request.Accept = "*/*"; request.Method = "GET"; var response = request.GetResponse(); return response.ResponseUri; }
public string CreateXOAuthKey() { var requestParams = CreateOAuthRequestParams(); if (_sign) { var signature = OAuthSignature.Create(this, requestParams); requestParams.Add(OAuthParameters.OAuthSignature, signature); } string token; using (var sw = new StringWriter()) { sw.Write("GET "); sw.Write(RequestEndpoint.AbsoluteUri); sw.Write(Characters.Space); var sorted = new SortedDictionary<string, string>(); foreach (var p in Parameters) { sorted.Add(p.Key, p.Value); } foreach (var p in requestParams) { sorted.Add(p.Key, p.Value); } foreach (var p in sorted) { sw.WriteFormat("{0}=\"{1}\",", p.Key, p.Value); } sw.TrimEnd(','); token = sw.ToString(); } var bytes = Encoding.ASCII.GetBytes(token); return Convert.ToBase64String(bytes); }
private static IEnumerable<char> NormalizeRequestParameters(IEnumerable<KeyValuePair<string, string>> @params) { using (var sw = new StringWriter()) { foreach (var pair in @params) { sw.Write(pair.Key); sw.Write("="); sw.Write(pair.Value); sw.Write("&"); } sw.TrimEnd('&'); return sw.ToString(); } }