【发布时间】:2019-11-10 16:15:41
【问题描述】:
我正在尝试使用 webhook 向 Slack 发出 POST 请求。我可以在本地向我的 Slack 实例发送 curl,但是在 lambda 中尝试这样做时,我在尝试发送有效负载时遇到了麻烦。
我所看到的一切都表明我必须使用和压缩自定义库,但出于我正在做的事情的目的,我需要使用本机 python 代码。有没有办法发送这个 POST 请求?
import json
import urllib.request
#import botocore.requests as requests
def lambda_handler(event, context):
message=event['message']
response = urllib.request.urlopen(message)
print(response)
这段代码给了我一个 400 错误,这就是我知道我正在访问我想要的 URL(URL 在 message 变量中)但是每次通过添加标题和文本正文来发送有效负载的尝试似乎都失败了。
【问题讨论】:
-
如果没有“data”参数,请求方法被认为是GET,而不是POST。检查here。
-
把参数改成data,还是400错误。
-
1) 添加数据(dict) 以进行发布请求。 2)将数据序列化的obj转成JSON格式的str,然后用ascii格式编码
data = json.dumps(data).encode('ascii')
标签: python amazon-web-services aws-lambda http-post webhooks