using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.IO;
|
using System.Net;
|
using System.Xml;
|
|
namespace ThreadTestSMGW
|
{
|
public class SMSHandler
|
{
|
public static string SITEURL = System.Configuration.ConfigurationManager.AppSettings["URL"];
|
public string errmsg = "";
|
|
/// <summary>
|
/// 发送短信
|
/// </summary>
|
/// <param name="account"></param>
|
/// <param name="password"></param>
|
/// <param name="extendNo"></param>
|
/// <param name="mobileNo"></param>
|
/// <param name="content"></param>
|
/// <returns></returns>
|
public string SendSMS(string account, string password, string extendNo, string mobileNo, string content)
|
{
|
|
if ( string.IsNullOrEmpty(account) || string.IsNullOrEmpty(password) || string.IsNullOrEmpty(mobileNo) || string.IsNullOrEmpty(content))
|
{
|
//log4netService.Info(userid+account+password+mobileNo+content);
|
errmsg = "参数不全";
|
return errmsg;
|
}
|
|
/*
|
string postData = string.Format("action=send&account=账号&password=密码&mobile=15023239810,13527576163&content=内容&extno=1069012345");
|
*/
|
//string requestUrl = string.Format("http://8.129.227.30:7862/sms");
|
string requestUrl = string.Format(SITEURL+"/sms");
|
StreamReader reader;
|
Uri requestUri = new Uri(requestUrl);
|
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);
|
request.Method = "POST";
|
request.ContentType = "application/x-www-form-urlencoded";
|
request.KeepAlive = true;
|
request.Timeout = 1000000;
|
StringBuilder data = new StringBuilder();
|
data.Append("action=send");
|
data.Append(string.Format("&account={0}", account));
|
data.Append(string.Format("&password={0}", password));
|
data.Append(string.Format("&extno={0}", extendNo));
|
data.Append(string.Format("&mobile={0}", mobileNo));
|
data.Append(string.Format("&content={0}", content+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")));
|
|
//byte[] byteData = UTF8Encoding.GetEncoding("GB212").GetBytes(data.ToString());
|
byte[] byteData = UTF8Encoding.UTF8.GetBytes(data.ToString());//utf编码格式显性转换
|
request.ContentLength = byteData.Length;
|
// 开始请求
|
using (Stream postStream = request.GetRequestStream())
|
{
|
postStream.Write(byteData, 0, byteData.Length);
|
}
|
|
|
WebResponse response = (HttpWebResponse)request.GetResponse();
|
//reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("GB2312"));
|
reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
|
|
StringBuilder builder = new StringBuilder();
|
char[] buffer = new char[0x400];
|
int charCount = 0;
|
while ((charCount = reader.Read(buffer, 0, buffer.Length)) > 0)
|
{
|
builder.Append(buffer, 0, charCount);
|
}
|
reader.Close();
|
string result = builder.ToString();
|
if (string.IsNullOrEmpty(result))
|
{
|
errmsg = "未知异常";
|
return errmsg;
|
}
|
XmlDocument docxml = new XmlDocument();
|
docxml.LoadXml(result);
|
|
//DataSql ds = new DataSql();
|
|
string r = docxml.SelectSingleNode("returnsms/returnstatus").InnerText;
|
if (r == "Success")
|
{
|
errmsg = docxml.SelectSingleNode("returnsms/taskID").InnerText;
|
//ds.UpdateSql(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"),id);
|
return errmsg;// +","+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
|
}
|
else
|
{
|
errmsg = docxml.SelectSingleNode("returnsms/message").InnerText;
|
//ds.UpdateSql(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), id);
|
return errmsg;// +"," + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
}
|
}
|
|
|
|
/// <summary>
|
/// 点对点短信发送
|
/// </summary>
|
/// <param name="account"></param>
|
/// <param name="password"></param>
|
/// <param name="extendNo"></param>
|
/// <param name="mobileConentList"></param>
|
/// <returns></returns>
|
public string SendSMS(string account, string password, string extendNo, string mobileConentList)
|
{
|
|
if (string.IsNullOrEmpty(account) || string.IsNullOrEmpty(password) || string.IsNullOrEmpty(mobileConentList))
|
{
|
//log4netService.Info(userid+account+password+mobileNo+content);
|
errmsg = "参数不全";
|
return errmsg;
|
}
|
string requestUrl = string.Format(SITEURL + "/sms");
|
StreamReader reader;
|
Uri requestUri = new Uri(requestUrl);
|
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);
|
request.Method = "POST";
|
request.ContentType = "application/x-www-form-urlencoded";
|
request.KeepAlive = true;
|
request.Timeout = 1000000;
|
StringBuilder data = new StringBuilder();
|
data.Append("action=p2p");
|
data.Append(string.Format("&account={0}", account));
|
data.Append(string.Format("&password={0}", password));
|
data.Append(string.Format("&extno={0}", extendNo));
|
data.Append(string.Format("&mobileContentList={0}", mobileConentList));
|
data.Append(string.Format("&rt=json"));
|
|
//byte[] byteData = UTF8Encoding.GetEncoding("GB212").GetBytes(data.ToString());
|
byte[] byteData = UTF8Encoding.UTF8.GetBytes(data.ToString());//utf编码格式显性转换
|
request.ContentLength = byteData.Length;
|
// 开始请求
|
using (Stream postStream = request.GetRequestStream())
|
{
|
postStream.Write(byteData, 0, byteData.Length);
|
}
|
|
|
WebResponse response = (HttpWebResponse)request.GetResponse();
|
//reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("GB2312"));
|
reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
|
|
StringBuilder builder = new StringBuilder();
|
char[] buffer = new char[0x400];
|
int charCount = 0;
|
while ((charCount = reader.Read(buffer, 0, buffer.Length)) > 0)
|
{
|
builder.Append(buffer, 0, charCount);
|
}
|
reader.Close();
|
string result = builder.ToString();
|
if (string.IsNullOrEmpty(result))
|
{
|
errmsg = "未知异常";
|
return errmsg;
|
}
|
return result;
|
|
|
//XmlDocument docxml = new XmlDocument();
|
//docxml.LoadXml(result);
|
|
|
|
//string r = docxml.SelectSingleNode("returnsms/returnstatus").InnerText;
|
//if (r == "Success")
|
//{
|
// errmsg = docxml.SelectSingleNode("returnsms/taskID").InnerText;
|
|
// return errmsg;
|
|
//}
|
//else
|
//{
|
// errmsg = docxml.SelectSingleNode("returnsms/message").InnerText;
|
|
// return errmsg;
|
//}
|
}
|
|
|
public string Report(string account, string password)
|
{
|
|
if (string.IsNullOrEmpty(account) || string.IsNullOrEmpty(password))
|
{
|
//log4netService.Info(userid+account+password+mobileNo+content);
|
errmsg = "参数不全";
|
return errmsg;
|
}
|
|
/*
|
string postData = string.Format("action=send&account=账号&password=密码&mobile=15023239810,13527576163&content=内容&extno=1069012345");
|
*/
|
string requestUrl = string.Format(SITEURL);
|
StreamReader reader;
|
Uri requestUri = new Uri(requestUrl);
|
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);
|
request.Method = "POST";
|
request.ContentType = "application/x-www-form-urlencoded";
|
request.KeepAlive = true;
|
request.Timeout = 1000000;
|
StringBuilder data = new StringBuilder();
|
data.Append("action=report");
|
data.Append(string.Format("&account={0}", account));
|
data.Append(string.Format("&password={0}", password));
|
|
//byte[] byteData = UTF8Encoding.GetEncoding("GB212").GetBytes(data.ToString());
|
byte[] byteData = UTF8Encoding.UTF8.GetBytes(data.ToString());//utf编码格式显性转换
|
request.ContentLength = byteData.Length;
|
// 开始请求
|
using (Stream postStream = request.GetRequestStream())
|
{
|
postStream.Write(byteData, 0, byteData.Length);
|
}
|
|
|
WebResponse response = (HttpWebResponse)request.GetResponse();
|
//reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("GB2312"));
|
reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
|
|
StringBuilder builder = new StringBuilder();
|
char[] buffer = new char[0x400];
|
int charCount = 0;
|
while ((charCount = reader.Read(buffer, 0, buffer.Length)) > 0)
|
{
|
builder.Append(buffer, 0, charCount);
|
}
|
reader.Close();
|
string result = builder.ToString();
|
if (string.IsNullOrEmpty(result))
|
{
|
errmsg = "未知异常";
|
return errmsg;
|
}
|
return "状态报告" + "," + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
}
|
}
|
}
|