服务端接收微信公众号的消息,出现异常的原因是接收的xml 格式数据有空格不能正常解析为xml数据。
方法/步骤
IIS服务器接收到的XML 数据:
string weweop = "<xml><ToUserName><![CDATA[gh_3b12ff052d79]]></ToUserName>< FromUserName >< ![CDATA[o68N91ZoTlxcWvDufZeTPPoqE5rQ]] ></ FromUserName >< CreateTime > 1561861323 </ CreateTime >"
+ "< MsgType ><![CDATA[text]]></ MsgType >"
+ "< Content ><![CDATA[1]]></ Content >< MsgId > 22360477099853556 </ MsgId ></ xml > ";
直接LoadXml(),抛
异常详细信息: System.Xml.XmlException: 名称不能以“ ”字符(十六进制值 0x20)开头。
XmlDocument requestDocXml = new XmlDocument();
requestDocXml.LoadXml(Regex.Replace(weweop, "\\s+", ""));
XmlElement rootElement = requestDocXml.DocumentElement;
string ToUserName = rootElement.SelectSingleNode("ToUserName").InnerText;
string FromUserName = rootElement.SelectSingleNode("FromUserName").InnerText;
string CreateTime = rootElement.SelectSingleNode("CreateTime").InnerText;
string MsgType = rootElement.SelectSingleNode("MsgType").InnerText;
用正则表达式替换掉所有空格后,在解析xml数据,没有抛出异常。
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
// string Event = rootElement.SelectSingleNode("Event").InnerText;
// string EventKey = rootElement.SelectSingleNode("EventKey").InnerText;
节点Event和EventKey不存在。所以会抛出异常信息。
正常接收发送给微信公众号的消息。
免责声明:以上内容(如有图片或视频亦包括在内)有转载其他网站资源,如有侵权请联系删除
-
设计总结|如何更好地表达活动品牌?
-
谈谈“目标思维”的落地
编辑导读:我们在做数据分析之前,一定要搞清楚需求方的目标到底是什么,要根据目标来重新定义业务方提出的问题,这就是目标思维。目标思维有多重要呢?应该如何落地呢...
-
在线教育平台竞品分析:网易云课堂vs腾讯课堂
本文从移动端出发,对当前比较热门的两款在线教育平台软件-网易云课堂和腾讯课堂进行比较和分析,不足之处还请大家多提意见。 市场分析 随着国内互联网技术的发展和移...
-
即学即用|父亲节活动的4种运营策略
-
B端产品经理和体验设计师的工作职责边界梳理
-
豆果美食电商分支用户体验报告及建议
-
数据分析师如何提高工作效率
在我们的日常工作中,提高工作效率是每个岗位都需要实现的,在工作中,面对比较凌乱的事情时,首先我们需要梳理清楚,按重要级进行开展;本文作者分享了关于...
-
2016中国云计算SaaS移动办公平台年度综合报告
-
网易大布局教育事业:网易公开课、网易云课堂和MOOC分析
-
一篇文章搞懂语音交互的来龙去脉