I would start off by heading here to better understand the Clickatell HTTP API: https://www.clickatell.com/apis-scripts/apis/http-s/. If you are interested they allow you 10 free text messages to try it out before you buy a package. Just sign up for an account and create your HTTP API and use your information to populate the snippet below.
For a particular project I am using this API to send out texts for verification purposes. I am using my method inside of a web service to send the information about a user as well as their pre-generated pin. Of course it is a lot different in my project but I am providing the bare bones below.
If you are a skimmer and you skipped reading anything I said above then here you go:
Code for MyWebRequest class:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Net; using System.IO; using System.Text; using System.Configuration; namespace CustomWebServices { public class MyWebRequest { private WebRequest request; private Stream dataStream; private string status; public String Status { get { return status; } set { status = value; } } public MyWebRequest(string url) { // Create a request using a URL that can receive a post. request = WebRequest.Create(url); } public MyWebRequest(string url, string method) : this(url) { if (method.Equals("GET") || method.Equals("POST")) { // Set the Method property of the request to POST. request.Method = method; } else { throw new Exception("Invalid Method Type"); } } public MyWebRequest(string url, string method, string data) : this(url, method) { // Create POST data and convert it to a byte array. string postData = data; byte[] byteArray = Encoding.UTF8.GetBytes(postData); // Set the ContentType property of the WebRequest. request.ContentType = "application/x-www-form-urlencoded"; // Set the ContentLength property of the WebRequest. request.ContentLength = byteArray.Length; // Get the request stream. dataStream = request.GetRequestStream(); // Write the data to the request stream. dataStream.Write(byteArray, 0, byteArray.Length); // Close the Stream object. dataStream.Close(); } public string GetResponse() { // Get the original response. WebResponse response = request.GetResponse(); this.Status = ((HttpWebResponse)response).StatusDescription; // Get the stream containing all content returned by the requested server. dataStream = response.GetResponseStream(); // Open the stream using a StreamReader for easy access. StreamReader reader = new StreamReader(dataStream); // Read the content fully up to the end. string responseFromServer = reader.ReadToEnd(); // Clean up the streams. reader.Close(); dataStream.Close(); response.Close(); return responseFromServer; } } }
And now the code for the method itself:
public string SendText(string mobile, string pin) { // Make sure to add the country code to ensure the text goes through string phoneCheck = ""; if (mobile.Length == 10) { phoneCheck = "1" + mobile; } // Clickatell settings string textmessage = "Your verification pin is " + pin; string parameters = ""; parameters = "user=yourclickatellusername"; parameters = parameters + "&password=yourclickatellpassword"; parameters = parameters + "&api_id=youruniqueclickatellhttpapiid"; parameters = parameters + "&to=" + phoneCheck; parameters = parameters + "&text=" + textmessage; parameters = parameters + "&mo=1"; parameters = parameters + "&from=15558675309"; MyWebRequest myRequest = new MyWebRequest("<a href="http://api.clickatell.com/http/sendmsg">http://api.clickatell.com/http/sendmsg</a>", "POST", parameters); myRequest.GetResponse(); } // SendText
* Note: If you put this call on a server that will require a proxy then add it to your MyWebRequest class
Reblogged this on Dinesh Ram Kali..
LikeLike