我正在尝试通过请求获取图像并从烧瓶应用程序返回该图像。我没有运气从请求中读取二进制数据,我得到的响应总是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() )
在某种程度上是错误的,但我不确定它应该是什么。我已经搜索了其他答案并基于它们,但它们总是略有不同(通常涉及文件)。
答案 0 :(得分:5)
您没有发送流式传输请求,因此原始套接字已经已经读取。只需使用r.content
代替:
fr = make_response(r.content)
如果在创建请求时使用stream=True
,则只能从静止读取原始套接字:
r = zs.get('url_that_loads_a_png', stream=True)
但是因为你正在将整个响应读入内存无论如何,所以这里没有太多意义。