我发现了一些我不理解的由Werkzeug/0.9.4引起的烧瓶静止行为。当我试图发布包含“=”的有效JSON时,使用Multidict似乎破坏了我的数据。在
下面是我的测试JSON:
{
"alert": {
"@id": "90",
"action": "hoojimaflip",
"fruit": {
"@bowl": "bananas",
"@protocol": "tcp"
},
"url": "https://this-is-a-sample/paramer?id=90"
}
}
这是POST方法。在
^{pr2}$如果我在application/json中使用cURL就可以了。我正确地在请求数据. 稍后我需要将其呈现回JSON,但没有问题。在
{
u'alert': {
u'@id': u'90'
u'action': u'hoojimaflip',
u'fruit': {
u'@bowl': u'bananas',
u'@protocol': u'tcp'
},
u'url': u'https://this-is-a-sample/paramer?id=90',
}
}
如果我使用application/x-www-form-urlencoded通过cURL发布,那么我应该能够在请求.窗体. 但是,似乎有什么东西破坏了我的数据。在
ImmutableMultiDict([('
{ "alert": {
"@id": "90",
"action": "hoojimaflip",
"fruit": {
"@bowl": "bananas",
"@protocol": "tcp"
},
"url": "https://this-is-a-sample/paramer?id', u'90"
}
}'
)])
“=”符号被用作某种记录分隔符,并破坏已发布的JSON。在
有人有什么想法吗?我错过了什么明显的东西吗?在
谢谢!在
如果外部应用程序顽固地使用替代mime类型进行POST,那么可以强制Flask将数据视为JSON,而是使用^{} method ,将
force
参数设置为True
:不要试图将JSON负载视为表单数据,那样做是行不通的。在
相关问题 更多 >
编程相关推荐