我有一个 Django (1.8.3) View :
向服务器 A (jetty) 发出 GET 请求,服务器 A 在响应正文中返回 JSON 数据。然后,
向服务器 B (node.js) 发出 POST,并在请求正文中传递从服务器 A 接收到的 JSON 数据。
JSON 数据的结构如下:
{
name: "foo",
details: {
"date": "today",
"isCool": "no",
},
stuff: [
{
"id": "1234",
"rating": "5",
}, {
"id": "5678",
"rating": "1",
},
]
}
但是我不知道如何在 Django View 中将服务器 A 的响应中的 JSON 获取到对服务器 B 的请求中。如果我这样做:
jetty_response = requests.request(method='GET', url=jetty_url)
node_response = requests.request(method="POST", url=node_url,
data=jetty_response.json())
我在服务器 B 中获取了 JSON 对象,但它看起来像这样:
{
name: "foo",
details: [ "date", "isCool"],
stuff: [ "id", "rating", "id", "rating"]
即name
属性是正确的,但详细信息字典被接收为原始字典的键集,并且内容列表被接收为原始字典中所有对象中的键集的平面数组。
如果我在 django 中这样做:
node_response = requests.request(method="POST", url=node_url,
data=json.dumps(jetty_response.json()))
我在 Node 中得到一个空对象,如果我简单地做同样的事情:
data=jetty_response.content
我如何提出此请求?
最佳答案
我自己想出来了。
通常情况下,最简单的答案是:
node_response = requests.request(method="POST", url=node_url,
data=jetty_response.content)
当我仔细查看我的日志并意识到我的 POST 反弹回 413 时,工作正常,然后在 Express 中调整了我的 bodyParser 的大小限制。
关于django - 在 Django 中将 JSON 数据从响应传递到请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32387498/