“只能发布到CGI脚本”501

2024-10-01 09:20:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Python运行一个本地CGIHttpServer,并使用这个Python程序在该服务器上运行一些东西:

''' submit data to form using robots '''
import urllib
import pprint


# hacking gullible app
url = "http://localhost:8000/cgi-bin/w5/captcha.example/vote_app/gullible_app.py"

def vote(lecturer):
    params = urllib.urlencode({'lecturer': lecturer,'submit':'submit'})
    f = urllib.urlopen(url, params)
    pprint.pprint(f.fp.readlines())

vote("Ivo")

这告诉我它只能发布到CGI脚本中,我觉得这很奇怪,因为python脚本在我的web浏览器中打开的位置很好。所以。。。它在我的浏览器中运行得很好,但当python程序试图发布到该URL时,它就不能运行了。这是怎么回事?(互联网上很少有关于这个问题的报道-我试着自己研究这个问题来解决它,但是只有3-4个人提到这个问题)

编辑:对不起伙计们!我不明白发和发。我应该在问题中包含这一点——这是python程序“易受骗”_应用程序副本". 如您所见,表单执行“POST”操作

^{pr2}$

Tags: import程序服务器脚本appurl浏览器params
2条回答

服务器端程序(您还没有给出,所以我们不能确定)只接受GET请求,而不向显示的url发送请求。在

urllib使urlopen以您的方式作为POST。有关如何发出GET请求的示例,请参阅文档http://docs.python.org/2/library/urllib.html#examples

答案似乎在文档中。在

您的错误消息:^{}

大提示:^{}

需要修改的内容:^{}

因此,要么将您的(Python)CGI脚本放在一个默认子目录中,要么修改cgi_directories使其正确地“猜测”URL应该是一个CGI脚本。在

相关问题 更多 >