using System;
|
using System.Collections.Generic;
|
using System.Text;
|
using System.IO;
|
using System.Net;
|
|
namespace MonitorAlarm
|
{
|
public class ZjunNewSMSNHandler:ISMSHandler
|
{
|
public string SITEURL = System.Configuration.ConfigurationManager.AppSettings["url"];
|
|
/// <summary>
|
/// 发送短信
|
/// </summary>
|
/// <param name="userid">用户ID</param>
|
/// <param name="timestamp">时间戳</param>
|
/// <param name="sgin">加密签名</param>
|
/// <param name="mobile">手机</param>
|
/// <param name="content">短信内容</param>
|
/// <param name="sendTime">发送时间</param>
|
/// <param name="extno">扩展码</param>
|
/// <returns></returns>
|
public string SendSMS(string userid, string timestamp, string sign, string mobile, string content, string sendTime, string extno)
|
{
|
string requestUrl = string.Format("{0}/v2sms.aspx", 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=send");
|
data.Append(string.Format("&userid={0}", userid));
|
data.Append(string.Format("×tamp={0}", timestamp));
|
data.Append(string.Format("&sign={0}", sign));
|
data.Append(string.Format("&content={0}", content));
|
data.Append(string.Format("&mobile={0}", mobile));
|
data.Append(string.Format("&extno={0}", extno));
|
data.Append(string.Format("&sendTime={0}", sendTime));
|
|
byte[] byteData = UTF8Encoding.UTF8.GetBytes(data.ToString());//utf编码格式显性转换
|
request.ContentLength = byteData.Length;
|
//开始请求
|
using (Stream postStream = request.GetRequestStream())
|
{
|
postStream.Write(byteData, 0, byteData.Length);
|
}//如果不用using ,就要使用close()释放Stream.
|
|
//获取响应
|
WebResponse response = (HttpWebResponse)request.GetResponse();
|
reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
|
|
//string value = reader.ReadToEnd();
|
//return value;
|
|
//或者,上面是直接获得值。下面是使用缓存获取。
|
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();
|
return builder.ToString();
|
}
|
|
/// <summary>
|
/// 上行查询
|
/// </summary>
|
/// <param name="userid">用户ID</param>
|
/// <param name="timestamp">时间戳</param>
|
/// <param name="sgin">加密签名</param>
|
/// <returns></returns>
|
public string Mo(string userid, string timestamp, string sgin)
|
{
|
string requestUrl = string.Format("{0}/v2callApi.aspx", 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 = 100000000;
|
StringBuilder data = new StringBuilder();
|
data.Append("action=query");
|
data.Append(string.Format("&userid={0}",userid));
|
data.Append(string.Format("×tamp={0}",timestamp));
|
data.Append(string.Format("&sign={0}",sgin));
|
byte[] bytedata = UTF8Encoding.UTF8.GetBytes(data.ToString());
|
request.ContentLength = bytedata.Length;
|
|
Stream poststream = request.GetRequestStream();
|
poststream.Write(bytedata,0,bytedata.Length);
|
poststream.Close();
|
|
WebResponse response = (HttpWebResponse)request.GetResponse();
|
reader = new StreamReader(response.GetResponseStream(),Encoding.UTF8);
|
string value = reader.ReadToEnd();
|
return value;
|
}
|
|
/// <summary>
|
/// 状态查询
|
/// </summary>
|
/// <param name="userid">用户ID</param>
|
/// <param name="timestamp">时间戳</param>
|
/// <param name="sgin">加密签名</param>
|
/// <param name="statusNum">查询个数</param>
|
/// <returns></returns>
|
public string Report(string userid, string timestamp, string sgin, string statusNum)
|
{
|
string requestUrl = string.Format("{0}/v2statusApi.aspx", 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 = 1000000000;
|
|
StringBuilder data = new StringBuilder();
|
data.Append("action=query");
|
data.Append(string.Format("&userid={0}",userid));
|
data.Append(string.Format("×tamp={0}",timestamp));
|
data.Append(string.Format("&sign={0}",sgin));
|
data.Append(string.Format("&statusNum={0}",statusNum));
|
|
byte[] bytedata = UTF8Encoding.UTF8.GetBytes(data.ToString());
|
request.ContentLength = bytedata.Length;
|
|
Stream stream = request.GetRequestStream();
|
stream.Write(bytedata,0,bytedata.Length);
|
stream.Close();
|
|
WebResponse response = (HttpWebResponse)request.GetResponse();
|
reader = new StreamReader(response.GetResponseStream(),Encoding.UTF8);
|
string value = reader.ReadToEnd();
|
return value;
|
}
|
|
/// <summary>
|
/// 余额查询
|
/// </summary>
|
/// <param name="userid">用户ID</param>
|
/// <param name="timestamp">时间戳</param>
|
/// <param name="sgin">加密签名</param>
|
/// <returns></returns>
|
public string Balance(string userid, string timestamp, string sgin)
|
{
|
string requestUrl = string.Format("{0}/v2sms.aspx", SITEURL);
|
StreamReader reader=null;
|
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 = 10000000;
|
StringBuilder data = new StringBuilder();
|
data.Append("action=overage");
|
data.Append(String.Format("&userid={0}",userid));
|
data.Append(String.Format("×tamp={0}",timestamp));
|
data.Append(String.Format("&sign={0}",sgin));
|
|
byte[] byteData = UTF8Encoding.UTF8.GetBytes(data.ToString());
|
request.ContentLength = byteData.Length;
|
|
Stream stream = request.GetRequestStream();
|
stream.Write(byteData,0,byteData.Length);
|
stream.Close();
|
|
|
WebResponse response = (HttpWebResponse)request.GetResponse();
|
reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
|
String value = reader.ReadToEnd();
|
return value;
|
}
|
|
/// <summary>
|
/// 修改密码
|
/// </summary>
|
/// <param name="userid">用户ID</param>
|
/// <param name="account">账号</param>
|
/// <param name="password">密码</param>
|
/// <param name="newpwd">新密码</param>
|
/// <param name="renewpwd">重复新密码</param>
|
/// <returns></returns>
|
public string Upassword(string userid, string account, string password, string newpwd, string renewpwd)
|
{
|
string requestUrl = string.Format("{0}/sms.aspx",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=changespwd");
|
data.Append(string.Format("&userid={0}",userid));
|
data.Append(string.Format("&account={0}",account));
|
data.Append(string.Format("&password={0}",password));
|
data.Append(string.Format("&newpwd={0}",newpwd));
|
data.Append(string.Format("&renewpwd={0}",renewpwd));
|
|
byte[] bytedata = UTF8Encoding.UTF8.GetBytes(data.ToString());
|
request.ContentLength = bytedata.Length;
|
|
Stream poststream = request.GetRequestStream();
|
poststream.Write(bytedata,0,bytedata.Length);
|
poststream.Close();
|
|
WebResponse response = (HttpWebResponse)request.GetResponse();
|
reader = new StreamReader(response.GetResponseStream());
|
string value = reader.ReadToEnd();
|
reader.Close();
|
return value;
|
}
|
|
/// <summary>
|
/// 非法敏感词查询
|
/// </summary>
|
/// <param name="userid">用户ID</param>
|
/// <param name="timestamp">时间戳</param>
|
/// <param name="sgin">加密签名</param>
|
/// <param name="content">查询内容</param>
|
/// <returns></returns>
|
public string CheckKey(string userid, string timestamp, string sgin, string content)
|
{
|
string requestUrl = string.Format("{0}/v2sms.aspx", 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=checkkeyword");
|
data.Append(string.Format("&userid={0}", userid));
|
data.Append(string.Format("×tamp={0}", timestamp));
|
data.Append(string.Format("&sign={0}", sgin));
|
data.Append(string.Format("&content={0}", content));
|
|
byte[] bytedata = UTF8Encoding.UTF8.GetBytes(data.ToString());
|
request.ContentLength = bytedata.Length;
|
|
Stream poststream = request.GetRequestStream();
|
poststream.Write(bytedata, 0, bytedata.Length);
|
poststream.Close();
|
|
WebResponse response = (HttpWebResponse)request.GetResponse();
|
reader = new StreamReader(response.GetResponseStream());
|
string value = reader.ReadToEnd();
|
reader.Close();
|
return value;
|
}
|
|
}
|
|
}
|