using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MSXML2;
namespace LYFZ.WinicSmsInterface
{
///
/// HTTP短信发送接口
///
public class HTTPSmsInterface
{
public HTTPSmsInterface() {
}
public static string InterfaceURL = "http://service.winic.org:8009/sys_port/gateway/index.asp";
///
/// 发送短信
///
/// 帐号
/// 密码
/// 目标手机号,多个用“,”号分隔 每次提交请不要大于100个号码
/// 内容 短信内容 最大字符数为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 = InterfaceURL+"?t=" + DateTime.Now.ToString("yyyyMMddhhmmss"); //POST到网站
try
{
string postData = "id=" + uid + "&pwd=" + pwd + "&to=" + mob + "&content=" + msg + "&time=" + _otime;
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();
webRequest.Abort();
webRequest = null;
str = 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("无法连接到远程服务器") || ex.Message.ToLower().Contains("未能解析此远程名称") || ex.Message.ToLower().Contains("404") || ex.Message.ToLower().Contains("500") || ex.Message.ToLower().Contains("400"))
{
return new HTTPSmsSendReturnInfo("-1/Send:0/Consumption:.0/Tmoney:0/sid:0/访问远程服务器时出错,未能解析此远程名称【错误信息:" + ex.Message + "】");
}
else
{
return new HTTPSmsSendReturnInfo("000/Send:0/Consumption:.0/Tmoney:0/sid:0/短信已发送到吉信通服务器,但在获取返回信息时失败。【返回错误信息:" + 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://service.winic.org:8009/sys_port/gateway/?id=" + uid + "&pwd=" + pwd + "&to=" + mob + "&content=" + msg + "&time=" + _otime;
string Send_URL = InterfaceURL + "/sys_port/gateway/?id=" + uid + "&pwd=" + pwd + "&to=" + mob + "&content=" + msg + "&time=" + _otime;
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;//默认值是 100,000 毫秒(100 秒)。
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();
req = null;
str = 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("-1/Send:0/Consumption:.0/Tmoney:0/sid:0/访问远程服务器时出错,未能解析此远程名称【错误信息:"+ex.Message+"】");
}
else {
return new HTTPSmsSendReturnInfo("000/Send:0/Consumption:.0/Tmoney:0/sid:0/短信已发送到吉信通服务器,但在获取返回信息时失败。【返回错误信息:" + ex.Message + "】");
}
}
}
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://service.winic.org:8009/sys_port/gateway/?id=" + uid + "&pwd=" + pwd + "&to=" + mob + "&content=" + msg + "&time=" + _otime;
//____________________________
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("-1/Send:0/Consumption:.0/Tmoney:0/sid:0");
}
}*/
///
/// 查询余额
///
///
///
///
public static string GetBalances(string uid,string pwd)
{
string Myuid = uid.Trim();
string Mypwd = pwd.Trim();
string Send_URL = "http://service.winic.org:8009/webservice/public/remoney.asp?uid=" + uid + "&pwd=" + pwd + "";
//____________________________
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 SendSmsResults.GetResults(andy);
}
}
}