4

我正在尝试通过请求获取图像并从烧瓶应用程序返回该图像。我从请求中读取二进制数据没有任何运气,我得到的响应总是 0 字节。

@app.route('/image')
def get_image:
    zs = requests.Session()
    r = zs.get( 'url_that_loads_a_png' )
    fr = make_response( r.raw.read() )
    fr.headers['Content-Type'] = r.headers['Content-Type']
    return fr

我认为我make_response( r.raw.read() )的不正确,但我不确定它应该是什么。我已经搜索了其他答案并基于以上内容,但它们总是略有不同(通常涉及文件)。

4

1 回答 1

6

您没有发出流式传输请求,因此已经读取了原始套接字。只需使用r.content

fr = make_response(r.content)

stream=True如果您在创建请求时使用了原始套接字,则只能从中读取:

r = zs.get('url_that_loads_a_png', stream=True)

但是由于无论如何您都在将整个响应读入内存,因此在这里这样做没有多大意义。

于 2013-08-12T14:03:00.437 回答