具体来说,我的中间件有兴趣区分GET请求:
网址#1以悬空问号启动。 从我的实验中,django的HttpRequest吞并了它,我无法区分这两者。有没有办法获取原始的非过滤查询字符串?
答案 0 :(得分:1)
?
应该转发为%3F
。那么,你可能应该选择另一个符号,没有这样的问题吗?
答案 1 :(得分:1)
这可能是不可能的。通常,django应用程序是从WSGI接口后面提供的,当请求到达django时,它已经被解析为PATH_INFO(在?之前)和QUERY_STRING(在?之后)。当django运行get_full_path时,它只是将这两个东西连接起来?如果需要,在中间。
这也是一个坏主意:HTTP不期望URL的行为与尾随行为不同,因为这只是一组空的参数,这与缺少一个?相同。手段。除了令人困惑之外,这可能会导致互操作性问题,因为代理或Web浏览器可能会丢失尾随的“?”期望它应该没有效果。