在Apache服务器上考虑以下脚本test.py
:
#!/usr/bin/env python
import cgi
cgi.test()
如果我打电话给http://domain.local/test.py?foo=bar
输出说(等等):
QUERY_STRING
REQUEST_METHOD
GET
Command Line Arguments
[]
Form Contents:
No form fields.
如果我使用POST请求发送数据,则QUERY_STRING
和REQUEST_METHOD
根本不会显示,而不是说表单内容部分仍为空。
为什么会发生这种情况,我该如何解决?
答案 0 :(得分:0)
我通过解决方法解决了这个问题:
import urlparse
import sys
print "Content-Type: text/plain;charset=utf-8"
print
data=dict(urlparse.parse_qsl(sys.stdin.read()))
for field in data:
print field,data[field]
在我的具体情况下,脚本只接受POST数据(我会在PHP中使用$ _POST,丢弃$ _GET)。它可以很容易地修改,以便能够解析GET数据,无论是代替POST还是POST。
但是,我仍然有兴趣知道为什么最初的方法没有成功。