django嵌套体请求未被设置

时间:2014-12-19 01:58:41

标签: python django

我试图使用python和django向box api发出请求。我收到400 Entity body should be a correctly nested resource attribute name\\/value pair错误。

我的要求如下:

requests.options(headers.kwargs['url'], headers=headers.headers, 
                 data={'parent': {'id': 'xxxx'}, 'name': 'name.pdf'})

当我检查400请求时,它包含'parent=id&name=name.pdf',这让我相信我没有正确设置身体

卷曲与身体一起使用

-d '{"name": "name.pdf", "parent": {"id": "xxxxx"}}'

1 个答案:

答案 0 :(得分:1)

显式编码字典以防止表单编码。否则,它将以与{3.}}(或Python 3.x中的urllib.urlencode)类似的方式进行表单编码。

import json

...

requests.options(
    headers.kwargs['url'], headers=headers.headers, 
    data=json.dumps({'parent': {'id': 'xxxx'}, 'name': 'name.pdf'}))

换句话说,不是传递字典,而是传递一个字符串。


根据urllib.parse.urlencode

  

...   有很多次你想要发送不是的数据   形式编码。如果传入字符串而不是dict,则传入该数据   将直接发布。