如何使用消息包解码烧瓶响应?

时间:2018-08-06 07:01:10

标签: python python-2.7 flask msgpack

我正在使用消息包对烧瓶响应进行编码,然后再将其发送到UI。为此,我覆盖了烧瓶响应类

from flask import Flask, Response, jsonify, make_response
import msgpack
import json
class FlaskResponse(Response):
    @classmethod
    def force_type(cls, rv, environ=None):
        if isinstance(rv, dict):
            rv = jsonify(rv)
        msgData = super(FlaskResponse, cls).force_type(rv, environ)
        print "msgData"
        print msgpack.packb(json.loads(msgData.data))
        return jsonify((msgpack.packb(json.loads(msgData.data))))

我遇到错误

UnicodeDecodeError: 'utf8' codec can't decode byte 0x83 in position 0: invalid start byte

有人建议我在这里做错了吗?

1 个答案:

答案 0 :(得分:1)

我认为问题是您试图将打包的字节发送到 <Connector port="8090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8444" compression="on" compressableMimeType="text/html, text/xml,text/plain,text/javascript,text/css,application/json" /> 函数,但是Flask不适用于它的结构。我可以建议在实例创建后将数据设置为jsonify

FlaskRequest

希望这会有所帮助。