【问题标题】:Bottle POST or PUT requests don't see more than one parameter瓶子 POST 或 PUT 请求看不到多个参数
【发布时间】:2014-12-06 08:41:21
【问题描述】:

我正在尝试使用 POST 或 PUT 传递几个参数,但我只得到第一个

@route('/command/', method='PUT')
def execute(command="Unknown"):
    param1 = request.query.get("param1")
    param2 = request.query.get("param2")
    param3 = request.query.get("param3")
    print("{} {} {} {}".format(command, param1, param2, param3))
    return "Executed {} {} {} {}".format(command, param1, param2, param3)

使用这样的请求:

curl -X PUT http://host:port/mycommand/?param1=value1&param2=value2&param3=value3

瓶子日志:"PUT /command/?param1=value1 HTTP/1.1" 并且 param2 和 param3 被打印为“None”,就像它们在 & 上被截断一样

【问题讨论】:

    标签: python rest curl bottle


    【解决方案1】:

    您需要在 URL 周围加上引号

    curl -X PUT "http://host:port/mycommand/?param1=value1&param2=value2&param3=value3"
    

    【讨论】:

    • 这只是意味着我现在必须停下来回家;) -d 变体不起作用,但引号有很大帮助。谢谢!
    • @EugeneSajine 确切地说,我已经删除了 -d 选项以避免混淆。感谢您的测试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-10
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    相关资源
    最近更新 更多