python - 在python中使用Klein访问http post请求的json内容

标签 python klein-mvc

我在 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 是同一个字典。

但是,现在我要搬到 Klein,所以服务器代码如下所示:

@app.route('/test', methods = ['POST'])
@inlineCallbacks
def test(request):
    output = dd()
    data = request.json <=== This doesn't work

并且在 Klein 中使用的请求不支持相同的功能。我想知道有没有办法像我在 Flask 中获取 json 一样获取 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 - 在python中使用Klein访问http post请求的json内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37665554/

相关文章:

python - Numpy - 仅更改数组一列的值的更简单方法?

python - 聚类稀疏共现矩阵

python - 从 CSV 输入 Python 中查找最后一行

python - Python 中的 HTML 字符串解码

python - 如何在基于 Python Klein 的 Web 服务中使用多核

python - 如何在python中像Flask一样使用Klein接收上传的文件

python - 如何在 Twisted Klein 中异步执行代码?

Python shell 在同一虚拟环境中同一台机器的不同位置上的工作方式不同

python - Alpine Linux 中缺少软件包,即使它列在软件包 repo 网站上