首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Amazon Lambdas HTML post表单提交

Amazon Lambdas HTML post表单提交
EN

Stack Overflow用户
提问于 2016-10-19 10:58:17
回答 1查看 1.6K关注 0票数 2

我想发布到AWS API Gateway。我希望我的URL查询字符串传递给Amazon Lambda。

在API Gateway配置中,我在方法请求中指定了一个参数作为URL查询字符串参数q4_englishName_first_。在集成请求中,我指定了一个Content-Type "application/json"映射。它看起来是这样的:

代码语言:javascript
复制
{
    "first" : "$input.params('q4_englishName_first_')"
}

我的lambda有一个以"first"作为字符串的请求类,getters和setters...

当我从API Gateway控制台进行测试时,我可以为"q4_englishName_first_"指定一个值--它有一个文本输入区域供我执行此操作--我将request body框保留为空。当我在API Gateway中单击Test时,结果是成功。在我的示例中,系统会向我发送一封电子邮件,其中包含我在查询字符串输入区域中键入的值。

令人抓狂的是,我在其他任何方面都没有成功。我想使用一个标准的HTML表单提交来传递这个值:

代码语言:javascript
复制
<form action="https://foo-api.us-west-2.amazonaws.com/beta" method="post">
    <input type="text" name="q4_englishName_first_"/>
    <input type="submit"/>
</form>

但是当我单击submit时,我得到的结果如下:

代码语言:javascript
复制
{"message": "Unsupported Media Type"}

这让我觉得API Gateway并不期望一个内容类型为"application/x-www-form-urlencoded"的POST。我愿意相信我是对的,因为当我使用Apache httpclient编写Java程序来完成POST时,Content-type "application/json"通过...

但是我想从URL表单进行POST,我不想等待表单支持JSON编码。我是否必须使用javascript将表单参数转换为JSON (如何转换?)或者有什么方法可以让AWS API网关接受我的url编码参数?

我遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2016-11-02 19:51:48

最简单的方法是在API Gateway中的资源上创建一个ANY方法,并将其设置为使用Lambda代理集成。然后,请求中的所有内容都被传递给Lambda函数(包括请求参数和主体)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40121351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档