Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon Lambdas HTML发布表单提交_Html_Forms_Aws Lambda - Fatal编程技术网

Amazon Lambdas HTML发布表单提交

Amazon Lambdas HTML发布表单提交,html,forms,aws-lambda,Html,Forms,Aws Lambda,我想发布到AWS API网关。我希望我的URL查询字符串传递给Amazon Lambda 在API网关配置中,我在方法请求中指定了一个参数作为URL查询字符串参数,q4\u englishName\u first\u。在集成请求中,我指定了内容类型“application/json”映射。看起来是这样的: { "first" : "$input.params('q4_englishName_first_')" } 我的lambda有一个请求类,其中“first”作为字符串、getter

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

在API网关配置中,我在方法请求中指定了一个参数作为URL查询字符串参数,
q4\u englishName\u first\u
。在集成请求中,我指定了
内容类型“application/json”
映射。看起来是这样的:

{
    "first" : "$input.params('q4_englishName_first_')"
}
我的lambda有一个请求类,其中
“first”
作为字符串、getter和setter

当我从API网关控制台进行测试时,我可以为
“q4\u englishName\u first”
指定一个值——它有一个文本输入区域供我执行此操作——我将请求正文框留空。当我在API网关中单击Test时,结果是成功。在我的例子中,我收到了一封电子邮件,其中包含我在查询字符串输入区域中键入的值

令人恼火的是,我没有以任何其他方式取得成功。我想使用标准HTML表单submit传递值:

<form action="https://foo-api.us-west-2.amazonaws.com/beta" method="post">
    <input type="text" name="q4_englishName_first_"/>
    <input type="submit"/>
</form>
这使我认为API网关不希望出现内容类型为
“application/x-www-form-urlencoded”
的帖子。我想相信我是对的,因为当我使用ApacheHttpClient编写一个Java程序来完成这篇文章时,
内容类型“application/json”
通过了

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


我缺少什么?

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

{"message": "Unsupported Media Type"}