热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

请教关于使用C#进行微信开发的XML的接收问题

publicvoidgetmsg(){StreamstreamHttpContext.Current.Request.InputStream;
public void getmsg()
        {

            Stream stream = HttpContext.Current.Request.InputStream;
            Byte[] postBytes = new Byte[stream.Length];
            stream.Read(postBytes, 0, (Int32)stream.Length);
            string postString = Encoding.UTF8.GetString(postBytes);
            
            if (!string.IsNullOrEmpty(postString))
            {
                //封装请求类
                
                XmlDocument requestDocXml = new XmlDocument();
                requestDocXml.LoadXml(postString);
                XmlElement rootElement = requestDocXml.DocumentElement;
                textMsg WxXmlModel = new textMsg();
                WxXmlModel.ToUserName = rootElement.SelectSingleNode("ToUserName").InnerText;
                WxXmlModel.FromUserName = rootElement.SelectSingleNode("FromUserName").InnerText;
                WxXmlModel.CreateTime = rootElement.SelectSingleNode("CreateTime").InnerText;
                WxXmlModel.MsgType = rootElement.SelectSingleNode("MsgType").InnerText;
                switch (WxXmlModel.MsgType)
                {
                    case "text"://文本
                        WxXmlModel.Content = rootElement.SelectSingleNode("Content").InnerText;
                        break;
                    
                    default:
                        break;
                }
                requestDocXml.Save("D:/get.xml");
                backmsg(WxXmlModel);//回复消息





                
            }
        }
        public void backmsg(textMsg WxXmlModel)
        {
            

            string textpl = string.Empty;
            textpl = "" +
                      "" +
                     "" +
                     "" + ConvertDateTimeInt(DateTime.Now) + "" +
                      "" +
                      "" +
                      "0" +
                      "
";

            XmlDocument xml = new XmlDocument();
            
            xml.LoadXml(textpl);
            

            if (!string.IsNullOrEmpty(textpl))
            {
                HttpContext.Current.Response.Write(xml);
                HttpContext.Current.Response.End();
            }
        }
        public int ConvertDateTimeInt(DateTime dt)
        {
            dt = DateTime.Now;
            string strdt = dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() + dt.Hour.ToString() + dt.Minute.ToString();
            strdt = strdt.Substring(2);
            int intdt = Convert.ToInt32(strdt);
            return intdt;
        }


找来找去找不到问题在哪,我直接手动把xml格式的写入读取xml变量,然后保存要发送的xml,出来倒是正常的。请各位指教下问题在哪,不胜感激

9 个解决方案

#1


没有人吗,还是我发错地方了?

#2


你对比一下生成的xml,有什么区别吗

#3


引用 2 楼 hanjun0612 的回复:
你对比一下生成的xml,有什么区别吗

你是说我本地生成的xml吗,我看过,就是要传回去的格式对的

#4


我的微信开发里,好像没有 0 这个节点

#5


自己拼接微信的XML参数,这种是容易出错的.一般做法是,找到这个接口的文档,将它的示例XML代码直接复制过来.然后直接改里面的值.如果需要动态生成,也是将这示例做为模板.

#6


谢谢楼上两位的建议,但是我中间有一步是把xml保存到本地,我向微信发现信息后,本地什么都没有,所以我觉得是不是接收的地方有问题?

#7


调试一下就知道了

#8


引用 7 楼 Z6454610012 的回复:
调试一下就知道了

微信服务器向公众号服务器发送数据怎么调试?

#9


引用 8 楼 phantom92 的回复:
Quote: 引用 7 楼 Z6454610012 的回复:

调试一下就知道了

微信服务器向公众号服务器发送数据怎么调试?


本地映射到外网,绑定微信即可。
或者你把关键步骤的日志都记录下来,写日志放到finally里面,你这样报错是不会记录日志的

推荐阅读
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案
    深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案 ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • 本文主要探讨了Java中处理ActionEvent事件的接口,以及一些常见的编程问题和解决方案,包括方法重载、成员变量访问、镜片质量检测等。 ... [详细]
  • 本文详细介绍了如何在 Android 应用中获取系统的版本号,包括具体的应用场景和实现步骤。 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • 在JUnit测试框架中,确保@Test注解的方法按特定顺序执行是常见的需求。本文总结了三种实现这一目标的策略。首先,介绍了通过方法名称排序来控制执行顺序的基本方法。其次,推荐了一种利用依赖管理插件的方式,这种方法更为灵活且易于维护。最后,探讨了使用第三方库如TestNG或Jupiter扩展来实现更复杂的顺序控制。每种方法都有其适用场景和优缺点,开发者可以根据具体需求选择最合适的方案。 ... [详细]
  • 属性类 `Properties` 是 `Hashtable` 类的子类,用于存储键值对形式的数据。该类在 Java 中广泛应用于配置文件的读取与写入,支持字符串类型的键和值。通过 `Properties` 类,开发者可以方便地进行配置信息的管理,确保应用程序的灵活性和可维护性。此外,`Properties` 类还提供了加载和保存属性文件的方法,使其在实际开发中具有较高的实用价值。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 本文全面解析了 Python 中字符串处理的常用操作与技巧。首先介绍了如何通过 `s.strip()`, `s.lstrip()` 和 `s.rstrip()` 方法去除字符串中的空格和特殊符号。接着,详细讲解了字符串复制的方法,包括使用 `sStr1 = sStr2` 进行简单的赋值复制。此外,还探讨了字符串连接、分割、替换等高级操作,并提供了丰富的示例代码,帮助读者深入理解和掌握这些实用技巧。 ... [详细]
  • 本文详细解析了 Android 系统启动过程中的核心文件 `init.c`,探讨了其在系统初始化阶段的关键作用。通过对 `init.c` 的源代码进行深入分析,揭示了其如何管理进程、解析配置文件以及执行系统启动脚本。此外,文章还介绍了 `init` 进程的生命周期及其与内核的交互方式,为开发者提供了深入了解 Android 启动机制的宝贵资料。 ... [详细]
  • 在本文中,我们将详细介绍如何构建一个用于自动回复消息的XML类。当微信服务器接收到用户消息时,该类将生成相应的自动回复消息。以下是具体的代码实现:```phpclass We_Xml { // 代码内容}```通过这个类,开发者可以轻松地处理各种消息类型,并实现高效的自动回复功能。我们将深入探讨类的各个方法和属性,帮助读者更好地理解和应用这一技术。 ... [详细]
author-avatar
吃羊的肉
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有