You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lambda函数URL的rawQueryString事件是否不支持冒号和斜杠?

问题原因与解决方案

你的问题不是rawQueryString不支持冒号和斜杠,而是未编码的特殊字符会导致请求被Lambda URL的前置处理层拦截,根本没到达你的Lambda函数执行。

当你在URL里直接传?http://yahoo.com时,://属于URL中的特殊分隔符,浏览器或请求客户端会默认认为这是不符合规范的查询字符串格式,Lambda URL的前置服务(比如AWS的请求路由层)会直接返回{"Message":null}的错误响应,你的函数代码根本没被执行。

解决方法

1. 客户端对参数进行URL编码

把要传递的URL参数做URL编码,比如http://yahoo.com会被编码为http%3A%2F%2Fyahoo.com,此时请求URL变为:
https://nu7xvoo6niguuqtkqs7qpp6zq0fnzlo.lambda-url.us-east-1.on.aws/?http%3A%2F%2Fyahoo.com

2. Lambda函数解码参数

修改你的函数,对拿到的rawQueryString进行URL解码,这样就能还原出原始的带冒号和斜杠的内容:

import json
import urllib.parse

def lambda_handler(event, context):
    tempurl = urllib.parse.unquote(event['rawQueryString'])
    return {
        'statusCode': 200,
        'headers': {"content-type": "application/json; charset=utf-8"},
        'body': json.dumps(tempurl, ensure_ascii=False)
    }

这样处理后,不管客户端传的是编码后的参数,还是某些场景下自动编码的参数,函数都能正确解析出你想要的http://yahoo.com并返回。

内容的提问来源于stack exchange,提问作者shantanuo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 02:01:10