微信公众号post获取xml 报错

Stream inputstream = System.Web.HttpContext.Current.Request.InputStream;
try
{

byte[] b = new byte[inputstream.Length];
inputstream.Read(b, 0, (int)inputstream.Length);
string inputstr = UTF8Encoding.UTF8.GetString(b);
XmlDocument d = new XmlDocument();
d.LoadXml(inputstr);
HttpContext.Current.Response.Write(inputstr);
}
catch(Exception ex)
{
HttpContext.Current.Response.Write(ex);
WriteLog("错误输出:" + ex.ToString());
}

                            提示System.Xml.XmlException: 根级别上的数据无效。 第 1 行,位置 1。 在 System.Xml.XmlTextReaderImpl.Throw(Exception e) 在 System.Xml.XmlTextReaderImpl.Throw(String res, String arg) 在 System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace() 在 System.Xml.XmlTextReaderImpl.ParseDocumentContent() 在 System.Xml.XmlTextReaderImpl.Read() 在 System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace) 在 System.Xml.XmlDocument.Load(XmlReader reader) 在 System.Xml.XmlDocument.LoadXml(String xml) 在 WebApplication1.weixin.interfaceTest.Index() 位置 e:\百变游戏\BBGame\WebApplication\WebApplication1\weixin\interfaceTest.ashx.cs:行号 149

2个回答

看下你获取的结构是不是不对

dcxy0
Q544471255 回复lljaccp: http://web.chacuo.net/formatxml,这个工具你去验证下你的XML,肯定是格式有问题。在这个工具上面把格式调整正确了,在发送应该就可以了。
3 年多之前 回复
lljaccp
lljaccp <input type="text" id="aa" name="aa" size="500" value="<xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[fromUser]]></FromUserName><CreateTime>12345678</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[content]]></Content></xml>" /> 格式这样有问题吗?
3 年多之前 回复

string inputstr 放到try语句外申明,catch中输出inputstr看看结构就知道了,肯定是xml格式有问题了。而且读数据直接下面就行了,干嘛要读到数组中

         if (context.Request.InputStream.Length > 0)
        {
            StreamReader reader = new StreamReader(hc.Request.InputStream, Encoding.UTF8);
            string d = reader.ReadToEnd();
            reader.Close();
lljaccp
lljaccp 这是页面表单提交的数据,<xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[fromUser]]></FromUserName><CreateTime>12345678</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[content]]></Content></xml>
3 年多之前 回复
showbo
支付宝加好友偷能量挖,胡杨等着我的招呼 回复lljaccp: 你格式肯定错了啊。。怎么把input的html代码一起提交了。。你这个获取xml内容是错的,微信没有加input的html代码的。你要获取input的value,前他的不要
3 年多之前 回复
lljaccp
lljaccp 格式是这样的
3 年多之前 回复
lljaccp
lljaccp <input type="text" id="aa" name="aa" size="500" value="<xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[fromUser]]></FromUserName><CreateTime>12345678</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[content]]></Content></xml>" />
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐