http://docs.upsidewireless.com/index.php?title=CSharp_Example&feed=atom&action=history
CSharp Example - Revision history
2024-03-28T11:16:52Z
Revision history for this page on the wiki
MediaWiki 1.22.0
http://docs.upsidewireless.com/index.php?title=CSharp_Example&diff=3353&oldid=prev
Bzurkovic: Created page with "Below is sample code for C#. You are welcome to cut+paste this sample into your application, however, keep in mind that depending on your environment, some changes may be requ..."
2015-02-04T20:35:53Z
<p>Created page with "Below is sample code for C#. You are welcome to cut+paste this sample into your application, however, keep in mind that depending on your environment, some changes may be requ..."</p>
<p><b>New page</b></p><div>Below is sample code for C#. You are welcome to cut+paste this sample into your application, however, keep in mind that depending on your environment, some changes may be required. <br />
<br />
<br />
Note: In order to run this sample, you need to reference System.Web.Extensions<br />
<source lang="csharp"><br />
<br />
using System;<br />
using System.Collections.Generic;<br />
using System.Text;<br />
using System.Net;<br />
using System.IO;<br />
using System.Web.Script.Serialization;<br />
using System.Xml;<br />
using System.Xml.Serialization;<br />
<br />
namespace TestUpsideRESTAPI<br />
{<br />
class Program<br />
{<br />
const string APIEndPoint = "https://secureapi.upsidewireless.com"; // or "http://api.upsidewireless.com"<br />
const string APICredential_Token = "xxxxxxxx-8e4b-405b-998c-a580bf593b76";<br />
const string APICredential_Signature = "xxxxxxxxfyqQx95Gxxxxxxxx";<br />
<br />
private static readonly string SMSMessageUrl = string.Format("{0}/RESTv1/{1}/Message", APIEndPoint, APICredential_Token);<br />
<br />
static void Main(string[] args)<br />
{<br />
bool acceptJSON = false;<br />
<br />
Console.WriteLine("SMS Message URL: " + SMSMessageUrl + "\n");<br />
<br />
var request = WebRequest.Create(SMSMessageUrl) as HttpWebRequest;<br />
request.Method = "POST";<br />
request.ContentType = "application/x-www-form-urlencoded";<br />
request.Accept = acceptJSON ? "application/json" : "application/xml";<br />
request.UserAgent = "UpsideCSharpAgent";<br />
// use default timeout<br />
//request.Timeout = 100 * 1000; // in miliseconds<br />
//request.ReadWriteTimeout = 300 * 1000; // in miliseconds<br />
<br />
var smsPostData = "signature={0}";<br />
smsPostData += "&type={1}";<br />
smsPostData += "&message={2}";<br />
smsPostData += "&recipient={3}";<br />
smsPostData += "&encoding={4}";<br />
<br />
string type = "sms"; // see type list on wiki<br />
string message = "test sms message";<br />
string recipient = "16047891236"; // number in E.164 format<br />
string encoding = "7"; // 7, 8 or 16<br />
<br />
smsPostData = string.Format(smsPostData, APICredential_Signature, type, message, recipient, encoding);<br />
Console.WriteLine("Post Data: " + smsPostData + "\n");<br />
var data = Encoding.UTF8.GetBytes(smsPostData);<br />
request.ContentLength = data.Length;<br />
<br />
try<br />
{<br />
using (var stream = request.GetRequestStream())<br />
{<br />
stream.Write(data, 0, data.Length);<br />
<br />
HttpWebResponse response;<br />
try<br />
{<br />
response = request.GetResponse() as HttpWebResponse;<br />
}<br />
catch (WebException ex)<br />
{<br />
response = ex.Response as HttpWebResponse;<br />
}<br />
<br />
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();<br />
<br />
Console.WriteLine("HTTP Response: " + responseString + "\n");<br />
RestResponse restResponse = null;<br />
if (acceptJSON)<br />
{<br />
JavaScriptSerializer JSS = new JavaScriptSerializer();<br />
restResponse = JSS.Deserialize<RestResponse>(responseString);<br />
}<br />
else<br />
{<br />
var sreader = new StringReader(responseString);<br />
var xmlreader = new XmlTextReader(sreader);<br />
XmlSerializer serializer = new XmlSerializer(typeof(RestResponse));<br />
restResponse = serializer.Deserialize(xmlreader) as RestResponse;<br />
}<br />
<br />
if (restResponse != null)<br />
{<br />
Console.WriteLine("Rest Response - HasException: " + restResponse.HasException);<br />
Console.WriteLine("Rest Response - Token: " + restResponse.Token);<br />
if (restResponse.HasException)<br />
{<br />
Console.WriteLine("Rest Response - RestException.ErrorCode: " + restResponse.RestException.ErrorCode);<br />
Console.WriteLine("Rest Response - RestException.Message: " + restResponse.RestException.Message);<br />
if (restResponse.RestException.Status != null)<br />
Console.WriteLine("Rest Response - RestException.Status: " + restResponse.RestException.Status);<br />
}<br />
else<br />
{<br />
Console.WriteLine("Rest Response - SMSMessage.Status: " + restResponse.SMSMessage.Status);<br />
Console.WriteLine("Rest Response - SMSMessage.Recipient: " + restResponse.SMSMessage.Recipient);<br />
Console.WriteLine("Rest Response - SMSMessage.Body: " + restResponse.SMSMessage.Body);<br />
Console.WriteLine("Rest Response - SMSMessage.Type: " + restResponse.SMSMessage.Type);<br />
Console.WriteLine("Rest Response - SMSMessage.TrackingId: " + restResponse.SMSMessage.TrackingId);<br />
if (restResponse.SMSMessage.Status == "REJECTED")<br />
Console.WriteLine("Rest Response - SMSMessage.RejectReason: " + restResponse.SMSMessage.RejectReason);<br />
}<br />
}<br />
else<br />
{<br />
Console.WriteLine("Can't get rest response object");<br />
}<br />
}<br />
}<br />
catch (Exception e)<br />
{<br />
Console.WriteLine("Error in calling REST API - " + e.Message);<br />
}<br />
<br />
Console.ReadKey();<br />
}<br />
<br />
}<br />
<br />
public class RestResponse<br />
{<br />
public bool HasException { get; set; }<br />
public string Token { get; set; }<br />
<br />
public SMSMessage SMSMessage { get; set; }<br />
<br />
public RestException RestException { get; set; }<br />
}<br />
<br />
public class SMSMessage<br />
{<br />
public string Status { get; set; }<br />
<br />
public string Recipient { get; set; }<br />
public string Body { get; set; }<br />
public string Type { get; set; }<br />
public string TrackingId { get; set; }<br />
public string RejectReason { get; set; }<br />
}<br />
<br />
public class RestException<br />
{<br />
public int ErrorCode { get; set; }<br />
public string Message { get; set; }<br />
<br />
public string Status { get; set; }<br />
}<br />
<br />
}</div>
Bzurkovic