我正在尝试使用wx/Python创建一个超级简单的Virtual In / Out Board。我已经为我对服务器的一个请求准备了以下代码,我将在服务器上存储数据:
data = urllib.urlencode({'q': 'Status'})
u = urllib2.urlopen('http://myserver/inout-tracker', data)
for line in u.readlines():
print line那里没什么特别的。我遇到的问题是,根据我读取文档的方式,这应该执行一个Post请求,因为我已经提供了data参数,而这并没有发生。我在该url的索引中有以下代码:
if (!isset($_POST['q'])) { die ('No action specified'); }
echo $_POST['q'];每次我运行我的Python应用程序时,我都会得到“没有指定操作”的文本打印到我的控制台上。我将尝试使用Request对象来实现它,因为我已经看到了一些包含这些对象的演示,但我想知道是否有人可以帮助我解释为什么使用此代码无法获得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库不能发布-文档告诉我它应该这样做。
发布于 2010-07-14 00:29:26
u = urllib2.urlopen('http://myserver/inout-tracker', data)
h.request('POST', '/inout-tracker/index.php', data, headers)使用不带尾随/的路径/inout-tracker不会获取index.php。相反,服务器将发出到带有尾随/的版本的302重定向。
执行302通常会导致客户端将POST转换为GET请求。
https://stackoverflow.com/questions/3238925
复制相似问题