我正在使用消息包对烧瓶响应进行编码,然后再将其发送到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
有人建议我在这里做错了吗?
答案 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
希望这会有所帮助。