我正在尝试使用wx/Python创建一个超级简单的虚拟进出板。 我已经为向服务器发送请求并存储数据的其中一种请求放置了以下代码:
data = urllib.urlencode({'q': 'Status'})
u = urllib2.urlopen('http://myserver/inout-tracker', data)
for line in u.readlines():
print line
那里没有什么特别的。我遇到的问题是,根据我阅读的文档,这应该执行一个Post请求,因为我提供了数据参数,但实际情况并非如此。我在该url的索引中有以下代码:
if (!isset($_POST['q'])) { die ('No action specified'); }
echo $_POST['q'];
每次运行我的Python应用程序时,我都会在控制台上打印出“未指定动作”的文本。我将尝试使用请求对象来实现它,因为我看过一些包括这些对象的演示,但我想知道为什么我使用这段代码没有收到Post请求。谢谢!
-- 编辑 --
这段代码确实有效,并成功地发布到了我的网页:
data = urllib.urlencode({'q': 'Status'})
h = httplib.HTTPConnection('myserver:8080')
headers = {"Content-type": "application/x-www-form-urlencoded",
"Accept": "text/plain"}
h.request('POST', '/inout-tracker/index.php', data, headers)
r = h.getresponse()
print r.read()
我仍然不确定为什么urllib2库在提供数据参数时不会进行POST操作 - 对我来说,文档表明它应该这样做。
urllib2
? - S.Lotturllib2.urlopen
。我只是使用 urllib 来编码 post 数据。 - g.d.d.c