我有一个API端点,可根据某些传递数据动态生成图像。我想调用API并将响应下载到文件中。在Python中实现这一目标的最佳方法是什么?
请求在cURL中显示如下:
curl https://localhost:4000/bananas/12345.png \
-O \
-X POST \
-d '[ 1, 2, 3, 4 ]'
答案 0 :(得分:4)
您应该使用requests
包而不是执行curl
或其他进程:
import requests
response = requests.post('https://localhost:4000/bananas/12345.png', data = '[ 1, 2, 3, 4 ]')
data = response.content
data
包含之后下载的内容,您可以将其存储到磁盘中,例如:
with open(path, 'wb') as s:
s.write(data)
答案 1 :(得分:-2)
我希望任何一天subprocess
优先于os.system
,所以这里等同于:
import subprocess
_CURL_POST = "curl https://localhost:4000/bananas\
/12345.png \
-O \
-X POST \
-d '[ 1, 2, 3, 4 ]'
"
subprocess.call(_CURL_POST)