最近在研究微信公众平台,官方文档里面有一句
当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上
我尝试在action前面加特性[httppost] 或者 Requst.Form 都没有拿到他发过来的数据
请问要怎么才能拿到 POST过来的数据
我有看asp.net的代码
他们是这么拿的
1 if (Request.HttpMethod.ToLower() == "post") 2 { 3 Stream s = System.Web.HttpContext.Current.Request.InputStream; 4 byte[] b = new byte[s.Length]; 5 s.Read(b, 0, (int)s.Length); 6 postStr = Encoding.UTF8.GetString(b); 7 if (!string.IsNullOrEmpty(postStr)) 8 { 9 ResponseMsg(postStr); 10 } 11 //WriteLog("postStr:" + postStr); 12 }
因为它们发送的是XML数据,不是键值对形式的,所以才要这样获取,而且微信开发开发必须是80端口。。
我的验证已经通过了,现在要接收普通信息,请问下 如果要接受XML数据怎么获取?
@苟活的意义: 上面的PostStr不就是吗,这样就可以获取到了,不过你得解析XML
@Terminator.: 刚才检查下代码发现,是日志写入的时候异常了,然后日志日志没写进去.我以为没拿到
楼主只要知道一件事就行了,ASP.NET的代码在MVC里面基本都是可以使用的。
你不要被MVC给骗得连ASP.NET怎么用的都忘了...
呵呵,是有一点.我从一出来工作就是用的MVC. asp.net的东西基本都忘了