首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Webob /金字塔查询字符串参数在收到时无法正常运行

Webob /金字塔查询字符串参数在收到时无法正常运行
EN

Stack Overflow用户
提问于 2020-04-20 21:46:40
回答 1查看 31关注 0票数 0

我正在运行金字塔作为我的API服务器。最近,当将查询字符串参数传递到RESTful API服务器时,我们开始将查询字符串参数按顺序提取。例如,到/v1/finishedGoodRequests?exact=true&id=39&join=OR&exact=false&name=39的GET被init上的RESTful api模块记录为request.url:

代码语言:javascript
复制
v1/finishedGoodRequests?join=OR&name=39&exact=true&exact=false&id=39 

使用request.query_string: join=OR&name=39&exact=true&exact=false&id=39

我处理查询参数是为了限定搜索,在这种情况下,id恰好是名称中的39或39。哪种可能的服务器设置或错误会潜入到服务器代码中以导致这样的事情?它仍然是MultiDict..。

EN

回答 1

Stack Overflow用户

发布于 2020-05-26 18:37:11

作为一个简单的例子,这对我来说很好,而且MultiDict总是保持顺序,所以我怀疑您正在堆栈中使用的东西正在重写一些东西。

代码语言:javascript
复制
from pyramid.config import Configurator
from pyramid.view import view_config
from waitress import serve

@view_config(renderer='json')
def view(request):
    return list(request.GET.items())

config = Configurator()
config.scan(__name__)
app = config.make_wsgi_app()

serve(app, listen='127.0.0.1:8080')

$ curl http://localhost:8080\?join=OR\&name=39\&exact=true\&exact=false\&id=39
[["join", "OR"], ["name", "39"], ["exact", "true"], ["exact", "false"], ["id", "39"]]

根据您正在使用的WSGI服务器,通常您可以查看environ来查看原始的url,这可能很方便。服务生没有,所以只需在管道中放置一些很高的东西(wsgi中间件),它可以注销environ['QUERY_STRING']并查看它是否与堆栈中较低的某个位置不匹配。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61332572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档