【发布时间】:2017-01-10 11:42:49
【问题描述】:
我正在尝试通过传递如下参数来调用我的 Lambda 函数。它包含 撇号(')。
https://invoke_url?param=[["kurlo jack's book","Adventure Books",8.8,1]]
字符串化为'https://invoke_url?param=%5B%5B%229780786706211%22s....`
我使用下面的映射将参数传递给 lambda
"query": {
#foreach($queryParam in $input.params().querystring.keySet())
"$queryParam": "$util.escapeJavaScript($input.params().querystring.get($queryParam))" #if($foreach.hasNext),#end
#end
}
我收到以下错误
{"message": "Could not parse request body into json: Unrecognized character escape \'\'\' (code 39)\n at [Source: [B@5b70c341; line: 29, column: 65]"}
从映射模板中删除双引号后,我也尝试过。但是没用。
【问题讨论】:
-
你能在字符串被解析之前打印它吗?
-
@johni 有没有办法在 api 网关集成请求映射上做到这一点?
-
应该有。我不是 Api Gayeway 专家,但从我过去几天研究的材料来看,似乎对此有支持。无论如何,我认为您的问题与您要解析的字符串有关。没有别的,这根本与 AWS 无关(IMO)
-
这应该可以回答您关于 Api Gateway stackoverflow.com/q/31329958/3454745 的问题
-
我们是否必须将字符串解码回 API Gateway 的 json 模板部分?还是它在内部解决这个问题?
标签: json amazon-web-services aws-lambda aws-api-gateway