1
cooper 2013-01-07 10:05:09 +08:00
file_get_contents("php://input")
替换 $GLOBALS["HTTP_RAW_POST_DATA"] |
2
chairo 2013-01-07 10:05:12 +08:00 2
Bottle 可以参考一下我这段代码:
http://www.au92.com/archives/weixin-api.html |
3
melaozhu OP @chairo 之前参考着兄台的代码写的,不过那个 allitems() 方法没见过,在Bottle API也没找着,能否给个链接呢?有没有其他的方法可以取得这个POST数据呢?
|
4
sharkli 2013-01-07 10:13:03 +08:00
一楼正解。
|
5
luztak 2013-01-07 10:13:26 +08:00
request.POST应该有个list/dict保存POST数据吧
|
6
melaozhu OP |
8
melaozhu OP @luztak 恩,是个字典,如果是表单POST过来,那通过key取value就可以了。但是微信客户端POST过来的数据,我不知道key啊,如题
|
9
chairo 2013-01-07 10:17:51 +08:00
allitems你看新版的bottle里是有这个方法的,如果sae的版本太低,你可以在你应用的目录放自己的新版bottle,不用sae自带的那个
可以看看我另一个项目中在sae可用的bottle文件,我记着只是简单修改一点点地方就能用上官方的bottle的 https://bitbucket.org/chairo/mxiong/src/18bc90dced2fd4d7d492752aad9ef8d4ea0980cb/core/bottle.py?at=default |
10
chairo 2013-01-07 10:19:56 +08:00 1
@melaozhu 我印象中微信post过来的数据,这个内容不是放在value中,而是一个key
所以你用什么key去取POST下数据都不成,需要遍历一下POST,然后取key中内容,而不是取value… |
11
chaojie 2013-01-07 10:21:56 +08:00 1
没有request.body吗
|
12
melaozhu OP @chairo 额,兄台,这个项目好工口哦 <3 。。。 继续请教,如果是不用allitems方法,有没有其他方法获取这个POST DATA呢?
|
13
melaozhu OP @chaojie 这个有的, request.body - The HTTP request body as a seek-able file-like object. Depending on MEMFILE_MAX, this is either a temporary file or a io.BytesIO instance.
但这个可以取到从微信POST过来的数据吗? |
14
chairo 2013-01-07 10:28:50 +08:00 1
@melaozhu 没有试过
但是你看bottle代码中也是有这么应用的(版本0.12-dev,github中取下来代码中根目录的bottle.py文件) 而想将最新版bottle应用到sae,只要自己修改下,我拿我bitbucket项目中的可在sae使用的bottle.py和现在的0.12.dev版本对比了下,印象中没记错的地方就是「subprocess」这个东西sae不支持,过滤掉就可以了 |
15
melaozhu OP @chairo 好吧,这正是我看你那篇文章疑惑的地方 doc = libxml2dom.parseString(key) ,那么POST中的key-value对如果只有一对,就不需要遍历啦。
|
17
melaozhu OP |
18
chairo 2013-01-07 10:40:59 +08:00
|
19
melaozhu OP @chairo 看到flask和web下面的 request.data 就在想,为什么bottle下面木有类似的方案。如果这个可以,这个话题就结了。
|
20
iloahz 2013-01-07 11:14:19 +08:00
|
21
luztak 2013-01-07 11:53:10 +08:00
@melaozhu 有肯定是有,不过没公开。毕竟py没有private。
我说的意思是 截包看看含有微信数据的key......难道它把数据放在key里么- -# |
22
qdcanyun 2013-01-08 09:55:14 +08:00 via iPad 1
request.body
这有个我写的微信python的sdk。。。 文档和样例还没写。等我考完试就补上。。。 希望能对你有帮助 |
23
qdcanyun 2013-01-08 10:14:26 +08:00 via iPad
|
24
xiaomayi0323 2013-03-12 16:12:15 +08:00
我也是卡在那了,整整一天,最后还是在Stackoverflow上找到了答案
就是用request.body.read()方法拿到微信Post过来的XML数据 |