首页 > 解决方案 > 使用 Flask 从 Request 中获取纯文本(非 Form-urlencoded)数据

问题描述

我是 Flask 的新手。我试图弄清楚如何将请求正文作为字符串而不是键:值参数对来获取。

在使用 jax-rs 的 java 中,使用以下命令很容易:

@POST
@Path("/returnText")
@Consumes(MediaType.TEXT_PLAIN)
@Produces(MediaType.TEXT_PLAIN)
public String hello(String name)
{
    return "Hello " + name;
}

我正在尝试做同样的事情,但使用 python + flask 代替。我有以下代码,但每次运行它时,它都会说我缺少一个参数:

@app.route("/REST/message",methods=['POST'])
def message(name):
return "Hello " + name;

我应该改用 flask.request 属性吗?如果是这样,我应该使用哪个属性从请求正文中打印纯文本?

标签: javapythonflaskjax-rs

解决方案


尝试添加标题

@app.route("/REST/message",methods=['POST'])
def message():
    headers = {"Content-Type": "text/plain","Accept":"text/plain"}
    return make_response('Hello ' + request.data.decode(),
                         200,
                         headers=headers)

推荐阅读