在 python 中使用 Klein 访问 http post 请求的 json 内容
Access json content of http post request with Klein in python
我在 python 中有一个简单的 http 客户端,它发送这样的 http post 请求:
import json
import urllib2
from collections import defaultdict as dd
data = dd(str)
req = urllib2.Request('http://myendpoint/test')
data["Input"] = "Hello World!"
response = urllib2.urlopen(req, json.dumps(data))
在我使用 Flask 的服务器端,我可以定义一个简单的函数
from flask import request
@app.route('/test', methods = ['POST'])
def test():
output = dd()
data = request.json
服务器端的data
和客户端的data
是同一个字典。
但是,现在我要搬到克莱因,所以服务器代码是这样的:
@app.route('/test', methods = ['POST'])
@inlineCallbacks
def test(request):
output = dd()
data = request.json <=== This doesn't work
并且在 Klein 中使用的请求不支持相同的功能。我想知道有没有一种方法可以像在 Flask 中一样在 Klein 中获取 json?感谢您阅读此问题。
Asaik Klein 不会让您直接访问 json 数据,但是您可以使用此代码访问它:
import json
@app.route('/test', methods = ['POST'])
@inlineCallbacks
def test(request):
output = dd()
data = json.loads(request.content.read()) # <=== This will work
我在 python 中有一个简单的 http 客户端,它发送这样的 http post 请求:
import json
import urllib2
from collections import defaultdict as dd
data = dd(str)
req = urllib2.Request('http://myendpoint/test')
data["Input"] = "Hello World!"
response = urllib2.urlopen(req, json.dumps(data))
在我使用 Flask 的服务器端,我可以定义一个简单的函数
from flask import request
@app.route('/test', methods = ['POST'])
def test():
output = dd()
data = request.json
服务器端的data
和客户端的data
是同一个字典。
但是,现在我要搬到克莱因,所以服务器代码是这样的:
@app.route('/test', methods = ['POST'])
@inlineCallbacks
def test(request):
output = dd()
data = request.json <=== This doesn't work
并且在 Klein 中使用的请求不支持相同的功能。我想知道有没有一种方法可以像在 Flask 中一样在 Klein 中获取 json?感谢您阅读此问题。
Asaik Klein 不会让您直接访问 json 数据,但是您可以使用此代码访问它:
import json
@app.route('/test', methods = ['POST'])
@inlineCallbacks
def test(request):
output = dd()
data = json.loads(request.content.read()) # <=== This will work