【问题标题】:Reading HTTP POST key/values in AWS Lambda Python在 AWS Lambda Python 中读取 HTTP POST 键/值
【发布时间】:2020-10-16 18:04:05
【问题描述】:

通过 HTTP GET 调用 Python Lambda 函数时,我可以使用字典 event['queryStringParameters'] 读取查询字符串参数。例如 /test.py?name1=value2&name2=value2,变量 event['queryStringParameters'] 包含以下内容:

{'name1': 'value1', 'name2': 'value2'}

我的理解是我应该能够对 POST 做同样的事情,但我没有任何运气。或者也许 event['name1'] 应该可以工作,但那也行不通。

当方法是 HTTP POST 时如何读取对?请注意,我希望遍历 所有 键/值的列表或字典,而不仅仅是特定的。

【问题讨论】:

    标签: python python-3.x post aws-lambda http-headers


    【解决方案1】:

    基于doc,您应该在event['body'] 中获取POST 有效负载。

    【讨论】:

    • 是的;多一点,因为它看起来是连续的 base64 编码字符串的格式
    【解决方案2】:

    所以,这是我创建名为“post_params”的字典的解决方案

    import json
    import base64
        
    def lambda_handler(event, context):
        
        body_decoded = base64.b64decode(event['body']).decode("utf-8")
        post_pairs = body_decoded.split("&")
        post_params = dict(p.split('=') for p in post_pairs)
        
        return { 'statusCode': 200, 'headers': {'Content-Type': 'text/json'}, 'body': json.dumps(post_params) }
    

    【讨论】:

      猜你喜欢
      • 2018-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-23
      • 2022-01-27
      • 2020-06-15
      相关资源
      最近更新 更多