using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MSXML2;
namespace LYFZ.WeinaSmsInterface
{
///
/// HTTP短信发送接口
///
public class HTTPSmsInterface
{
public HTTPSmsInterface() {
}
///
/// 发送短信
///
/// 帐号
/// 密码
/// 目标手机号,多个用“,”号分隔 每次提交请不要大于5000个号码
/// 内容 短信内容 最大字符数为390个 说明:第一条为70字每条,之后为67字每条
/// 定时发送时间,忽略时为即时发送
///
public static HTTPSmsSendReturnInfo SendSmsMessagesPOST(string _uid, string _pwd, string _tos, string _msg, string _otime = "")
{
System.GC.Collect();
Encoding myEncoding = Encoding.GetEncoding("gb2312");
string uid = _uid.Trim();
string pwd = _pwd.Trim();
string mob = _tos.Trim();
string msg = System.Web.HttpUtility.UrlEncode(_msg.Trim(), myEncoding);
string Send_URL = "http://yl.mobsms.net/send/gsend.aspx?t=" + DateTime.Now.ToString("yyyyMMddhhmmss"); //POST到网站
try
{
string postData = "name=" + uid + "&pwd=" + pwd + "&dst=" + mob + "&msg=" + msg;
byte[] byteArray = Encoding.Default.GetBytes(postData);
System.Threading.Thread.Sleep(3);
System.Net.HttpWebRequest webRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(new Uri(Send_URL));
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.ContentLength = byteArray.Length;
System.IO.Stream newStream = webRequest.GetRequestStream();
newStream.Write(byteArray, 0, byteArray.Length);
newStream.Close();
newStream = null;
//接收返回信息:
webRequest.Timeout = 600000;
using (System.Net.WebResponse wr = webRequest.GetResponse())
{
System.IO.StreamReader str = new System.IO.StreamReader(wr.GetResponseStream(), Encoding.Default);
string strMsg = str.ReadToEnd();
str.Close();
str.Dispose();
str = null;
webRequest.Abort();
webRequest = null;
strMsg = System.Web.HttpUtility.UrlDecode(strMsg);
return new HTTPSmsSendReturnInfo(strMsg);
//在这里对接收到的页面内容进行处理
}
/*System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)webRequest.GetResponse();
System.IO.StreamReader stream = new System.IO.StreamReader(response.GetResponseStream(), Encoding.Default);
string Message = stream.ReadToEnd();
Message = System.Web.HttpUtility.UrlDecode(Message);
stream.Close();
response.Close();
webRequest.Abort();
return new HTTPSmsSendReturnInfo(Message); */
}
catch (Exception ex)
{
//无法连接到远程服务器
try
{
string TimeoutLogsMsg = Send_URL + "【返回错误信息:" + ex.Message + "】";
HTTPSmsInterface.TimeoutLogs.Append("\r\n【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + "】" + TimeoutLogsMsg + "\r\n");
}
catch { }
if (ex.Message.ToLower().Contains("远程名称无法解析") || ex.Message.ToLower().Contains("remote name could not") || ex.Message.ToLower().Contains("yl.mobsms.net") || ex.Message.ToLower().Contains("无法连接到远程服务器") || ex.Message.ToLower().Contains("未能解析此远程名称") || ex.Message.ToLower().Contains("404") || ex.Message.ToLower().Contains("500") || ex.Message.ToLower().Contains("400"))
{
return new HTTPSmsSendReturnInfo("money=0&num=0&success=&faile=&err=Unknown error&errid=-1&retmsg=访问远程服务器时出错,未能解析此远程名称【错误信息:" + ex.Message + "】");
}
else
{
return new HTTPSmsSendReturnInfo("money=0&num=0&success=&faile=&err=Unknown error&errid=0&retmsg=短信已发送到北京维那服务器,但在获取返回信息时失败。【返回错误信息:" + ex.Message + "】");
}
}
}
///
/// 发送短信
///
/// 帐号
/// 密码
/// 目标手机号,多个用“,”号分隔 每次提交请不要大于100个号码
/// 内容 短信内容 最大字符数为390个 说明:第一条为70字每条,之后为67字每条
/// 定时发送时间,忽略时为即时发送
///
public static HTTPSmsSendReturnInfo SendSmsMessages(string _uid, string _pwd, string _tos, string _msg, string _otime = "")
{
System.GC.Collect();
Encoding myEncoding = Encoding.GetEncoding("gb2312");
string uid = _uid.Trim();
string pwd = _pwd.Trim();
string mob = _tos.Trim();
string msg = System.Web.HttpUtility.UrlEncode(_msg.Trim(), myEncoding);
string Send_URL = "http://yl.mobsms.net/send/gsend.aspx?name=" + uid + "&pwd=" + pwd + "&dst=" + mob + "&msg=" + msg;
try
{
System.Threading.Thread.Sleep(3);
System.Net.HttpWebRequest req = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(Send_URL);
req.Method = "GET";
req.Timeout = 600000;
using (System.Net.WebResponse wr = req.GetResponse())
{
System.IO.StreamReader str = new System.IO.StreamReader(wr.GetResponseStream(), myEncoding);
string strMsg = str.ReadToEnd();
str.Close();
str.Dispose();
str = null;
req = null;
return new HTTPSmsSendReturnInfo(strMsg);
//在这里对接收到的页面内容进行处理
}
}
catch(Exception ex)
{
//无法连接到远程服务器
try
{
string TimeoutLogsMsg = Send_URL + "【返回错误信息:" + ex.Message + "】";
HTTPSmsInterface.TimeoutLogs.Append("\r\n【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + "】" + TimeoutLogsMsg + "\r\n");
}
catch { }
if (ex.Message.ToLower().Contains("无法连接到远程服务器") || ex.Message.ToLower().Contains("未能解析此远程名称") || ex.Message.ToLower().Contains("404") || ex.Message.ToLower().Contains("500") || ex.Message.ToLower().Contains("400"))
{
return new HTTPSmsSendReturnInfo("money=0&num=0&success=&faile=&err=Unknown error&errid=-1/访问远程服务器时出错,未能解析此远程名称【错误信息:" + ex.Message + "】");
}
else
{
return new HTTPSmsSendReturnInfo("money=0&num=0&success=&faile=&err=Unknown error&errid=0/短信已发送到北京维那服务器,但在获取返回信息时失败。【返回错误信息:" + ex.Message + "】");
}
// return new HTTPSmsSendReturnInfo("money=0&num=0&success=&faile=&err=Unknown error&errid=-1");
}
}
private static StringBuilder timeoutLogs = new StringBuilder();
///
/// 超时记录日志
///
public static StringBuilder TimeoutLogs
{
get { return HTTPSmsInterface.timeoutLogs; }
set { HTTPSmsInterface.timeoutLogs = value; }
}
/*
///
/// 发送短信
///
/// 帐号
/// 密码
/// 目标手机号,多个用“,”号分隔 每次提交请不要大于100个号码
/// 内容 短信内容 最大字符数为390个 说明:第一条为70字每条,之后为67字每条
/// 定时发送时间,忽略时为即时发送
///
public static HTTPSmsSendReturnInfo SendSmsMessages(string _uid, string _pwd, string _tos, string _msg, string _otime = "")
{
try {
string uid = _uid.Trim();
string pwd = _pwd.Trim();
string mob = _tos.Trim();
string msg = _msg.Trim();
string Send_URL = "http://121.52.221.108/send/gsend.aspx?name=" + uid + "&pwd=" + pwd + "&dst=" + mob + "&msg=" + msg;
//____________________________
MSXML2.XMLHTTP xmlhttp = new MSXML2.XMLHTTP();
xmlhttp.open("GET", Send_URL, false, null, null);
xmlhttp.send("");
MSXML2.XMLDocument dom = new XMLDocument();
Byte[] b = (Byte[])xmlhttp.responseBody;
//string Flag = System.Text.ASCIIEncoding.UTF8.GetString(b, 0, b.Length);
string andy = System.Text.Encoding.GetEncoding("GB2312").GetString(b).Trim();
return new HTTPSmsSendReturnInfo(andy);
}
catch {
return new HTTPSmsSendReturnInfo("money=0&num=0&success=&faile=&err=Unknown error&errid=-1");
}
}*/
///
/// 查询余额
///
///
///
///
public static string GetBalances(string uid,string pwd)
{
string Myuid = uid.Trim();
string Mypwd = pwd.Trim();
string Send_URL = "http://yl.mobsms.net/send/getfee.aspx?name=" + uid + "&pwd=" + pwd + "";
string andy = LYFZ.WinAPI.CustomPublicMethod.HttpWebRequestGET(Send_URL, System.Text.Encoding.GetEncoding("GB2312"));
/* //____________________________
MSXML2.XMLHTTP xmlhttp = new MSXML2.XMLHTTP();
xmlhttp.open("GET", Send_URL, false, null, null);
xmlhttp.send("");
MSXML2.XMLDocument dom = new XMLDocument();
Byte[] b = (Byte[])xmlhttp.responseBody;
//string Flag = System.Text.ASCIIEncoding.UTF8.GetString(b, 0, b.Length);
string andy = System.Text.Encoding.GetEncoding("GB2312").GetString(b).Trim();
*/
return andy;
}
}
}