Lambda 代理集成 queryStringParameters 特殊字符

Lambda Proxy integration queryStringParameters special characters

我正在测试一个新的 AWS SAM 应用程序,我发现了一个我无法解决的错误。

我有一条带有简单 GET 请求的路线

/myRoute

并且此路由支持查询参数,例如“mail”

所以完整的 url 看起来像这样

/myroute?mail=mymail@example.com

aws 正在为我创建正确的事件我的问题在于当我的字符串参数中有特殊字符时例如 mymail+bonzo@example.com 比 aws-sam 解释调用后我实际得到的是带有 space 而不是特殊字符 +.

的“mymail bonzo@example.com”

有什么想法吗?

这不是 SAM、Lambda 或 API 网关的问题。 + 符号表示 space (see this answer on that subject)。您应该 URL 编码您的查询字符串参数,并在您的 Lambda 中解码它们。 + 符号是 %2B.