编 辑 新 闻
新闻类型:
编程天地
编程天地
摄影天地
海贝官方
文学
电脑技术
创业天地
旅游天地
健康生活
游戏动漫
法律法规
商品欣赏
汽车世界
净化工程
asp.net
JQ与JS
APP
asp.net
系统
数据库
UI
JAVA
新闻主题:
 
搜索
 
前台
商品编号:
发 表 人:
关键字:
用空格隔开
新闻内容:
(小于1200字时 <br 分页)
<pre class="brush:c#;toolbar:false">using System; using System.Web.Services; using YY.SmsPlatform.Common.Objects; using YY.SmsPlatform.Common.UserInterface; using System.Configuration; using System.Text; using System.Net.Http; using System.Threading.Tasks; using System.Xml; using System.Diagnostics; namespace YY.SmsPlatform.UserInterface { /// <summary> /// WebService 的摘要说明 /// </summary> [WebService(Namespace = "https://dx.ipyy.net/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 // [System.Web.Script.Services.ScriptService] public class WebService : System.Web.Services.WebService { /// <summary> /// 表示提交方式 /// </summary> private const MsgOrigin msgOrigin = MsgOrigin.WebService; /// <summary> /// 请求地址 /// </summary> private string _url = ConfigurationManager.AppSettings["ServerUrl"] + "webservice.asmx"; /// <summary> /// 实例化WebService远程对象 /// </summary> /// <summary> /// 发送短信接口 /// </summary> /// <param name="userName">用户名</param> /// <param name="password">密码</param> /// <param name="sms">短信实体</param> /// <returns>发送状态</returns> [WebMethod(Description = "发送短信接口")] public SendResult SendSms(string userName, string password, SmsObject sms) { string content = SOAPMessage(userName, password, sms); string rlts = GetSOAPMessage(_url, content); //string result =rlts.Result.Content.ReadAsStringAsync().Result; //SendHelper.WriteToSendXmlLog(result); Trace.TraceInformation(rlts); SendResult rlt=null; try { rlt= Analysis(rlts); } catch (Exception ex) { Trace.TraceInformation("解析XML文件是发生错误!"+ex); } return rlt; } /// <summary> /// 解析XML文件 /// </summary> /// <param name="strResult"></param> /// <returns></returns> private SendResult Analysis(string strResult) { //实例化XmlDocument var doc = new System.Xml.XmlDocument(); //加载soap文件 doc.LoadXml(strResult); //简化soap,XML文件 string sendSmsResult = doc.DocumentElement["soap:Body"]["SendSmsResponse"].InnerXml; //重新加载简化后的xml文件 doc.LoadXml(sendSmsResult); //xml 命名空间 XmlNamespaceManager xmlns = new XmlNamespaceManager(doc.NameTable); //添加xml命名空间缩写 xmlns.AddNamespace("H", "http://www.yysms.com/"); //获取xml文件<StatusCode></StatusCode>节点下的文本值 string payType = doc.SelectSingleNode("/H:SendSmsResult/H:PayType",xmlns).InnerText; string statusCode = doc.SelectSingleNode("/H:SendSmsResult/H:StatusCode", xmlns).InnerText; //PayType string msgid = doc.SelectSingleNode("/H:SendSmsResult/H:MsgId",xmlns).InnerText; string description = doc.SelectSingleNode("/H:SendSmsResult/H:Description",xmlns).InnerText;//Description string successCounts = doc.SelectSingleNode("/H:SendSmsResult/H:SuccessCounts",xmlns).InnerText; string billingCount = doc.SelectSingleNode("/H:SendSmsResult/H:BillingCount",xmlns).InnerText; string amount = doc.SelectSingleNode("/H:SendSmsResult/H:Amount",xmlns).InnerText; string balance = doc.SelectSingleNode("/H:SendSmsResult/H:Balance",xmlns).InnerText; string billingAmount = doc.SelectSingleNode("/H:SendSmsResult/H:BillingAmount",xmlns).InnerText; //用于返回的信息 ResultCode resultCode = (ResultCode)Enum.Parse(typeof(ResultCode), statusCode); SendResult sendResult = new SendResult(resultCode, description, msgid, Convert.ToInt64(amount), Convert.ToInt32(successCounts)) { BillingCount = Convert.ToInt32(billingCount), Balance = Convert.ToDecimal(balance), BillingAmount = Convert.ToDecimal(billingAmount) }; //SendResult r = new SendResult(mtStatus, msgid, gatawayCode, description); return sendResult; } /// <summary> /// 包装Soap协议XML文件 /// </summary> /// <param name="userName">用户名</param> /// <param name="password">密码</param> ///<param name="sms">短信内容</param> /// <returns></returns> private string SOAPMessage(string userName, string password, SmsObject sms) { var sb = new StringBuilder(); sb.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); sb.Append("<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">"); sb.Append("<soap12:Body><SendSms xmlns=\"http://www.yysms.com/\">"); sb.AppendFormat("<userName>{0}</userName>", userName); sb.AppendFormat("<password>{0}</password>", password); sb.AppendFormat("<sms><Msisdns>{0}</Msisdns>", sms.Msisdns); sb.AppendFormat("<SMSContent><![CDATA[{0}]]></SMSContent>", sms.SMSContent); sb.AppendFormat("<ExtNumber>{0}</ExtNumber>", sms.ExtNumber); string planSendTime = sms.PlanSendTime == null ? null : Convert.ToDateTime(sms.PlanSendTime).ToString("yyyy-MM-ddTHH:mm:ss"); sb.AppendFormat("<PlanSendTime xsi:nil=\"true\">{0}</PlanSendTime></sms>", planSendTime); sb.Append("</SendSms></soap12:Body></soap12:Envelope>"); return sb.ToString(); //var sb = new StringBuilder(); ////<?xml version="1.0" encoding="utf-8"?> //sb.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); ////<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> //sb.Append("<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">"); ////<soap12:Body><SendSms xmlns="http://www.yysms.com/"> //sb.Append("<soap12:Body><SendSms xmlns=\"http://www.yysms.com/\">"); ////<userName>string</userName> //sb.AppendFormat("<userName>{0}</userName>", userName); ////<password>string</password> //sb.AppendFormat("<password>{0}</password>", password); ////<sms><Msisdns>string</Msisdns> //sb.AppendFormat("<sms><Msisdns>{0}</Msisdns>", sms.Msisdns); ////<SMSContent>string</SMSContent> //sb.AppendFormat("<SMSContent><![CDATA[{0}]]></SMSContent>", sms.SMSContent); ////<ExtNumber>string</ExtNumber> //sb.AppendFormat("<ExtNumber>{0}</ExtNumber>", sms.ExtNumber); ////<PlanSendTime>dateTime</PlanSendTime> //sb.AppendFormat("<PlanSendTime>{0}</PlanSendTime></sms>", sms.PlanSendTime == null ? "null" : Convert.ToDateTime(sms.PlanSendTime).ToString("yyyy-MM-ddTHH:mm:ss")); ////</sms></SendSms></soap12:Body></soap12:Envelope> //sb.Append("</SendSms></soap12:Body></soap12:Envelope>"); //return sb.ToString(); } /// <summary> /// HttpClient异步请求 /// </summary> /// <param name="uri"></param> /// <param name="content"></param> /// <returns></returns> private async Task<HttpResponseMessage> SendAsync(string uri, string content) { HttpContent strContent = new StringContent(content); strContent.Headers.Clear(); strContent.Headers.Add("Content-Type", "application/soap+xml;charset=utf-8");//"application/soap+xml; charset=utf-8" //strContent.Headers.Add("Content-Length", content.Length.ToString()); HttpClient client = new HttpClient(); HttpResponseMessage task = await client.PostAsync(uri, strContent); return task; } /// <summary> /// /// </summary> /// <param name="uri"></param> /// <param name="content"></param> /// <returns></returns> private static string GetSOAPMessage(string uri, string content) { HttpClient client = new HttpClient(); HttpContent stringContent = new StringContent(content); stringContent.Headers.Clear(); stringContent.Headers.Add("Content-Type", "application/soap+xml;charset=utf-8"); //stringContent.Headers.Add("Content-Length",content.Length.ToString()); HttpRequestMessage request = new HttpRequestMessage(); request.Content = stringContent; request.Method = HttpMethod.Post; //request.RequestUri = new UnicodeEncoding(uri); request.RequestUri = new Uri(uri); var rlt = client.SendAsync(request).Result; return rlt.Content.ReadAsStringAsync().Result; } } public class SmsObject { /// <summary> /// 表示手机号,多个用逗号分开。 /// </summary> public string Msisdns { get; set; } /// <summary> /// 表示短信的完整内容,拆分前。 /// </summary> public string SMSContent { get; set; } /// <summary> /// 表示扩展号码 /// </summary> public string ExtNumber { get; set; } /// <summary> /// 表示定时发送的时间 /// </summary> public DateTime? PlanSendTime { get; set; } internal SmsParam ToSmsParam() { return new SmsParam { Msisdns = this.Msisdns, SMSContent = this.SMSContent, PlanSendTime = this.PlanSendTime, ExtNumber = this.ExtNumber, }; } } }</pre><p><a href="https://www.cnblogs.com/lhxsoft/p/8664517.html" _src="https://www.cnblogs.com/lhxsoft/p/8664517.html">https://www.cnblogs.com/lhxsoft/p/8664517.html</a><br/></p><p><br/> </p>
操作:
跳过导航链接。
净化工程
洁净室
汽车世界
安全常识
汽车养护
品牌欣赏
商品欣赏
商品评测
高逼格
商品对比
法律法规
法律法规
民生政策
游戏动漫
动漫天地
游戏欣赏
Flash游戏
健康生活
杂文
职务分类
便民服务
影视天地
教育
生活常识
饮食文化
偏方药方
养生之道
圣经领悟
开心一笑
品牌黑白帮
妇婴
旅游天地
购物天堂
中国村镇
旅游景点
旅游咨询
创业天地
创业故事
公司管理
创业项目
工作技巧
展会
资料
电脑技术
维修
电脑知识
文学
人间万象
历史
古诗词
人生感悟
海贝官方
商品欣赏
招标信息
海贝新闻
招聘专栏
关于我们
行情动态
海贝娱乐
海贝项目
会员礼品
商品报价
特惠信息
摄影天地
古风古韵
花鸟鱼虫
秀美山河
静物拍摄
风土人情
节日祝福
城市风光
美女摄影
编程天地
JAVA
UI
数据库
系统
asp.net
APP
JQ与JS