我正在尝试使用以下解决方案让我的Api-Gateway将application/x-www-form-urlencoded映射到json:
如何从Amazon API Gateway将params从POST传递给AWS Lambda
但是,到目前为止,我的lambda仅成功触发,但请求体始终为空。如果有人知道如何在.net-core c#中处理它,我会非常感激您的见解。
这是我的无服务器lambda函数目前的样子,我收到了时间戳,但没有关于请求体的任何信息。
请注意,如果我使用代理集成而不是映射,则会传递表单值。我想使用映射,这样我可以让两个客户端使用不同的Post方法,并且只有Lambda解析JSON。以下是设置示例,以此方式传递表单值:key = 1&steamid = 1&notetitle = ARK-ALARM%3A + 06%2F17 +%40 + 16%3A24 + on + Paleolithic + Ark + - The + Island,+ ALARM +'Base'+IN+'The+Hidden+Lake'+WAS + TRIPPED!&message = ...
这是我的无服务器lambda函数目前的样子,我收到了时间戳,但没有关于请求体的任何信息。
public async Task<APIGatewayProxyResponse> Post(APIGatewayProxyRequest request, ILambdaContext context)
{
var webHook = new WebHookClient("https://{urlHiddenForObviousReasons}");
var body = new BodyModel
{
Content = $"Trigger @ {DateTime.UtcNow}, {request.Body}"
};
await webHook.PostMessage(body);
var response = new APIGatewayProxyResponse
{
StatusCode = (int)HttpStatusCode.OK,
Body = "Alert received.",
Headers = new Dictionary<string, string> { { "Content-Type", "text/plain" } }
};
return response;
}
请注意,如果我使用代理集成而不是映射,则会传递表单值。我想使用映射,这样我可以让两个客户端使用不同的Post方法,并且只有Lambda解析JSON。以下是设置示例,以此方式传递表单值:key = 1&amp;steamid = 1&amp;notetitle = ARK-ALARM%3A + 06%2F17 +%40 + 16%3A24 + on + Paleolithic + Ark + - The + Island,+ ALARM +'Base'+IN+'The+Hidden+Lake'+WAS + TRIPPED!&message = ...
![enter image description here](https://istack.dev59.com/ZiXBL.webp)