【发布时间】:2015-11-09 11:26:38
【问题描述】:
我想做一个只包含 POST 的 Web API。目前我需要在 web 上运行 python 脚本,所以我正在 Heroku 中从 flask 构建一个 python web 服务器。但是,我的问题是,每当我从 POSTMAN 发送 POST 请求时,我会收到实际上来自 GET 请求的返回数据。以下是我的代码:
from flask import Flask
from flask import request
import os
app = Flask(__name__)
@app.route("/", methods=['GET', 'POST'])
def api_grab_key():
if request.method == 'POST':
if request.headers['Content-Type'] == 'application/json':
return request.json["imgUrl"]
else:
return "Request must be in JSON"
if request.method == 'GET':
return "Hello World! GET request"
if __name__ == "__main__":
port = int(os.environ.get('PORT', 33507))
app.run(host='0.0.0.0', port=port)
当我在本地运行时它可以工作,但不能在 Heroku 上运行。在 Heroku 上,输出始终是“Hello World!GET request”谢谢!
【问题讨论】:
-
curl -XPOST -HContent-Type:application/json -d'{"imgUrl":"test"}' localhost:33507显示什么?curl -XPOST -HContent-Type:application/json -d'{"imgUrl":"test"}' HEROKU_APP_ROUTE呢? -
在 curl 之后仍然显示“GET request”,显然我的问题在于我将请求发送到的 URL。