python restful接口返回文件,Python:从RestAPI下载zip文件

第三方RestAPI提供服务器日志文件,目前我们正在使用curl命令下载日志文件,比如curl -H "X-Auth-Token: XXXXXXXXXXXXXXXXXXXXXXXXXX" https://host_address/api/v3.0/admin/logs -o logs.zip

但我正在尝试使用Flask/Python创建简单的仪表板

下面是我的Python/Flask代码:

^{pr2}$

但是当我从浏览器中点击那个网址时,我得到了下面的错误信息Traceback (most recent call last):

...

...

...

File "/Users/admin/Documents/project/__init__.py", line 940, in download_console_logs

res.content,

File "/Users/admin/Documents/project/venv3/lib/python3.6/site-packages/requests/models.py", line 823, in content

self._content = bytes().join(self.iter_content(CONTENT_CHUNK_SIZE)) or bytes()

File "/Users/admin/Documents/project/venv3/lib/python3.6/site-packages/requests/models.py", line 745, in generate

for chunk in self.raw.stream(chunk_size, decode_content=True):

File "/Users/admin/Documents/project/venv3/lib/python3.6/site-packages/urllib3/response.py", line 436, in stream

data = self.read(amt=amt, decode_content=decode_content)

File "/Users/admin/Documents/project/venv3/lib/python3.6/site-packages/urllib3/response.py", line 384, in read

data = self._fp.read(amt)

File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 449, in read

n = self.readinto(b)

File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 497, in readinto

self._close_conn()

File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 403, in _close_conn

fp.close()

AttributeError: 'NoneType' object has no attribute 'close'

我使用PyCharm设置了断点/调试器,并且能够看到res.content中包含二进制数据,但我无法确定这里出了什么问题。在

这是一个简单的图表,它解释了我要做什么,

FICHi.png

更新:回答:我采用了以下方法,它以非常有效的方式解决了我的问题。在@app.route('/download/server/logs')

def download_log():

import requests

from flask import Reponse

res = requests.get('http:///v1.2/admin/logs', stream=True)

return Response(

res.iter_content(chunk_size=1024),

direct_passthrough=True

)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RESTful是一种设计风格和架构原则,用于构建可伸缩的网络应用程序。它是一种基于HTTP协议的约束性架构,旨在提供一种简单、轻量级、可扩展和可维护的方式来设计和构建Web服务。 RESTful API是基于RESTful原则设计的API。它使用HTTP协议的GET、POST、PUT和DELETE等请求方法,通过URL和请求头传递参数,使用状态码和响应体返回数据,实现了客户端和服务器之间的通信和数据交互。RESTful API通常使用JSON或XML格式来传输数据。 在引用中提到的SpringBoot Mybatis CXF框架,可以帮助我们快速开发和部署RESTful API。而引用中的ansible-api是一个基于RESTful HTTP API的IT自动化系统,它提供了一种使用RESTful API进行配置和管理的方式。 总之,RESTful是一种设计风格和架构原则,而RESTful API是基于RESTful原则设计的API,用于实现客户端和服务器之间的通信和数据交互。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [SpringBoot+Mybatis+CXF框架,实现Restful api与 WebService api接口的大实验](https://download.csdn.net/download/u011938827/87662947)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [ansible-api:Ansible的RESTful HTTP Api](https://download.csdn.net/download/weixin_42138139/14971104)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值