我有一个Django(1.8.3)视图:
向服务器A(jetty)发出GET请求,该请求返回响应正文中的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视图中将服务器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
属性是正确的,但是详细信息dict是作为原始字典的键集接收的,并且填充列表作为原始字典中所有对象中的键集的平面数组接收。
如果我在django中这样做:
node_response = requests.request(method="POST", url=node_url,
data=json.dumps(jetty_response.json()))
我在节点中得到一个空对象,如果我这么做的话,也是如此:
data=jetty_response.content
如何提出此请求?
答案 0 :(得分:1)
自己想出来。
通常情况下,最简单的答案是:
node_response = requests.request(method="POST", url=node_url,
data=jetty_response.content)
一旦我仔细查看我的日志并且意识到我的POST弹回413,然后调整了我的bodyParser的大小限制,就行了。