在API Gateway上使用Lambda作为后端时,可能会遇到查询字符串被错误解码的问题,这会导致无法正确处理特殊字符。此时可以在Lambda函数中手动解码查询字符串。以下是一个Python示例:
import urllib.parse
def lambda_handler(event, context):
params = {}
queryString = event['queryStringParameters']
for key, value in queryString.items():
decodedValue = urllib.parse.unquote(value)
params[key] = decodedValue
# 处理解码后的查询字符串
return {
'statusCode': 200,
'body': json.dumps({'params': params})
}
以上代码首先使用urllib.parse模块的unquote函数手动解码查询字符串,然后将解码后的参数存储在字典中,方便后续处理。注意,在方法返回之前,需要将响应的内容转换为JSON字符串。