public Result AddAudienceListMembership(string email, string list) { Parameters parameters = new Parameters (); parameters.Add(Parameters.EMAIL, email); string path = String.Format ("/audience_lists/{0}/add", HttpUtility.UrlEncode (list)); return Post (path, parameters); }
public string GetUrl(string path, bool ssl) { if (path.StartsWith ("/")) { path = path.Substring (1); } Parameters parameters = new Parameters (); parameters.Add (USERNAME, Username); parameters.Add (API_KEY, ApiKey); return GetUrl(path, ssl, parameters); }
private Result Get(string path, Parameters parameters) { try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create (Config.GetUrl (path, false, parameters)); request.Method = "GET"; request.ContentType = FORM_URL_ENCODED; request.ContentLength = 0; return new Result ((HttpWebResponse)request.GetResponse ()); } catch (WebException webex) { return new Result (webex.Response); } catch (Exception ex) { return new Result (ex); } }
public Result SendEmail(Parameters parameters) { return Post ("/mailer", parameters, true); }
private Result Post(string path, Parameters parameters, bool ssl) { try { if (Config.SkipSslValidation) { ServicePointManager.ServerCertificateValidationCallback += delegate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }; } HttpWebRequest request = (HttpWebRequest)WebRequest.Create (Config.GetUrl (path, ssl)); request.Method = "POST"; request.ContentType = FORM_URL_ENCODED; request.ServicePoint.Expect100Continue = false; if (parameters != null) { string data = parameters.ToParameterString (); if (data.Length > 0) { if (Config.UTF8Encode) { UTF8Encoding encoding = new UTF8Encoding (); byte[] bytes = encoding.GetBytes (data); request.ContentLength = bytes.Length; Stream stream = request.GetRequestStream (); stream.Write (bytes, 0, bytes.Length); stream.Close (); } else { request.ContentLength = data.Length; StreamWriter writer = new StreamWriter (request.GetRequestStream (), Encoding.ASCII); writer.Write (data); writer.Close (); } } } else { request.ContentLength = 0; } HttpWebResponse response = (HttpWebResponse)(request.GetResponse ()); return new Result (response); } catch (WebException webex) { return new Result (webex.Response); } catch (Exception ex) { Console.WriteLine (ex.Message); Console.WriteLine (ex.StackTrace); return new Result (ex); } finally { if (Config.SkipSslValidation) { ServicePointManager.ServerCertificateValidationCallback -= delegate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }; } } }
private Result Post(string path, Parameters parameters) { return Post (path, parameters, false); }
public string GetUrl(string path, bool ssl, Parameters parameters) { return String.Format ("http{0}://{1}/{2}?{3}", ssl ? "s" : "", ApiEndPoint, path, parameters.ToParameterString ()); }