将 JSON 数据从响应传递到 Django 中的请求
Passing JSON data from response to request in Django
我有一个 Django (1.8.3) 视图:
向服务器 A(码头)发出 GET 请求,其中 returns 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
属性 是正确的,但是详细信息字典被接收为原始字典的键集,而内容列表被接收为原始字典中所有对象中键集的平面数组。
如果我改为在 django 中执行此操作:
node_response = requests.request(method="POST", url=node_url,
data=json.dumps(jetty_response.json()))
我在节点中得到一个空对象,如果我简单地做也是一样:
data=jetty_response.content
我该如何提出这个请求??
我自己想出来了。
通常情况下,最简单的答案:
node_response = requests.request(method="POST", url=node_url,
data=jetty_response.content)
在我仔细查看我的日志并意识到我的 POST 弹回 413 后工作正常,然后在 express 中调整了我的 bodyParser 的大小限制。
我有一个 Django (1.8.3) 视图:
向服务器 A(码头)发出 GET 请求,其中 returns 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
属性 是正确的,但是详细信息字典被接收为原始字典的键集,而内容列表被接收为原始字典中所有对象中键集的平面数组。
如果我改为在 django 中执行此操作:
node_response = requests.request(method="POST", url=node_url,
data=json.dumps(jetty_response.json()))
我在节点中得到一个空对象,如果我简单地做也是一样:
data=jetty_response.content
我该如何提出这个请求??
我自己想出来了。
通常情况下,最简单的答案:
node_response = requests.request(method="POST", url=node_url,
data=jetty_response.content)
在我仔细查看我的日志并意识到我的 POST 弹回 413 后工作正常,然后在 express 中调整了我的 bodyParser 的大小限制。