【问题标题】:flask server not working as expected locally烧瓶服务器在本地无法按预期工作
【发布时间】:2020-07-24 08:05:19
【问题描述】:

我做了一个简单的烧瓶服务器,它在 heroku 上工作得很好,但是当我尝试在本地运行服务器时,会出现错误 400(错误请求)。同样在烧瓶输出中,我得到了一些奇怪的字符。这是我制作的示例:

app = Flask(__name__)
@app.route('/controller', methods=['POST'])
def controller():
   return "1"

@app.route('/player', methods=['POST'])
def player():
   return "5"

if __name__ == '__main__':
    app.run(host = 'localhost', debug = True, port = 8080)

这是带有空 POST 请求的烧瓶服务器的输出:

127.0.0.1 - - [24/Jul/2020 12:32:25] code 400, message Bad request version ('Ôù\x90\x88\x9fb07')
127.0.0.1 - - [24/Jul/2020 12:32:25] "[35m[1m  ü­AîKîe̲}kÔùb07[0m" HTTPStatus.BAD_REQUEST -

我正在使用 requests 库发出 POST 请求

【问题讨论】:

    标签: python flask post python-requests localhost


    【解决方案1】:

    你的例子在我的机器上就像一个魅力。

    如何创建 POST 请求?也许这就是问题所在。

    请尝试:

    ~/Tests/stackoverflow via ? v3.8.4 (venv) 
    ❯ curl -X POST http://localhost:8080/controller
    1
    

    【讨论】:

    • 它以某种方式与您的方法一起使用,但我不明白为什么请求库在本地不起作用,但在 heroku 上运行代码时起作用
    • 首先,您可以向我们展示您的尝试。请复制完整的请求代码。
    • print(requests.post("http://localhost:8080/controller", json={"foo": 1}).json())
    【解决方案2】:

    这样试试

    import flask
    from flask import *
    
    app = Flask(__name__)
    @app.route('/controller', methods=['POST', 'GET'])
    def controller():
       return "1"
    
    @app.route('/player', methods=['POST', 'GET'])
    def player():
       return "5"
    
    if __name__ == '__main__':
        app.run(host = 'localhost', debug = True, port = 8080)
    

    【讨论】:

    • 我不允许使用 GET 请求。新的导入行对我没有任何影响
    猜你喜欢
    • 2014-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-16
    • 1970-01-01
    • 2020-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多