我正在尝试将两个参数发送到使用Flask路由的URL。

如果我做:

curl -i http://127.0.0.1:5000/api/journeys/count?startStationName=Hansard%20Mews,%20Shepherds%20Bush&endStationName=Farringdon%20Lane,%20Clerkenwell


然后我的代码是:

@application.route('/api/journeys/count', methods=['GET'])
def journeys():
    print request.args
    startStationName = request.args.get('startStationName')
    endStationName = request.args.get('endStationName')


应该打印定义了startStationNameendStationName的字典。

但是,相反,似乎只接收到第一个参数:

ImmutableMultiDict([('startStationName', u'Hansard Mews, Shepherds Bush')])


有人知道我在做什么错吗?我觉得某个地方肯定有某种愚蠢的错误或误解,但我一直在找一个小时,找不到它。

最佳答案

您的外壳将&解释为put the command in the background character。为避免这种情况,请引用整个URL:

curl -i "http://127.0.0.1:5000/api/journeys/count?startStationName=Hansard%20Mews,%20Shepherds%20Bush&endStationName=Farringdon%20Lane,%20Clerkenwell"

08-19 21:40