gpt4 book ai didi

python - HTTP POST、curl 和 mod_python - 如何处理没有 HTML FORM 元素的 POST 请求?

转载 作者:太空宇宙 更新时间:2023-11-04 11:02:13 24 4
gpt4 key购买 nike

我正在运行一个 mod_python 服务器,其中 index.py 旨在处理传入的请求。

在 index.py 中,如果我设计这样的东西来处理表单并获取表单中的详细信息:

<form enctype="multipart/form-data" action="func" method="post">
<p>Input file:<input type="file" name="request"></p>
<p><input type="submit" name="press" value="submit"></p>

然后像这样从表单中获取详细信息(注意上面的操作“func”)

def func(req):
message = []
f = req.form.getfirst('request')

它在浏览器中工作得很好。我可以上传一个文件,它的内容可以在服务器端检索。

但是,我想通过 curl 的 POST 发送数据。在那种情况下,我想,如果我可以从请求对象本身获取 POST 数据,则不需要服务器上的

元素来处理 POST。

假设我通过 curl 的请求是这样的:

curl --data "request=data_i_am_posting" http://mymodpythonsite.com/path/

我的 mod_python 请求处理程序应该如何设计才能获得我发布的数据。我应该使用 吗?

def index(req):
# What should I do here to get data_i_am_posting

顺便说一句,请注意我的 HTTP 服务器根本不会被浏览器访问,客户端(curl、脚本)将发布数据并等待非 html 的响应。

最佳答案

首先注意几点:

  • 看起来您正在使用 Publisher Handler of mod_python .这在幕后做了很多工作,将 URL 映射到 Python 函数。
  • 服务器并不真正知道或关心它从哪里获取数据。在你的情况下 curl command is simply simulating a form POST request .
  • 因此,您可以像处理表单请求一样处理 curl 请求。
  • 您可能不想将函数命名为“index”,因为这可能会给发布者的路径-> 函数映射带来不必要的混淆,因为“index.py”是路径的隐含部分。没有错,只是令人困惑。

所以对于你的 curl 命令,你应该能够从“index.py”模块中的这个函数中得到你想要的:

def path(req):
request_data = req.form.getfirst('request')
    -

关于python - HTTP POST、curl 和 mod_python - 如何处理没有 HTML FORM 元素的 POST 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4364572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com