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; } } }