gpt4 book ai didi

python - 在 POST 请求(python 请求)后获取响应/返回值

转载 作者:行者123 更新时间:2023-12-04 08:17:41 31 4
gpt4 key购买 nike

我正在尝试将图像发送到我的 API,然后从中获取结果。例如,我使用发送一个 bmp 图像文件

file = {"img": open("img.bmp)}
r = requests.post(url, files = file)
现在我陷入了如何从 API 读取结果的问题。
通常我们有一个数据值,我们发送到 API 并获得结果
data = {"data":"MyDataString"}
r = requests.get(url, params = data)
但我需要发送一个图像。我尝试寻找在 GET 请求中发送图像的方法或在 POST 请求中使用 r.content 但无法使其工作。
为了更好地可视化问题,这里是一个例子:
考虑一个 API,您可以在其中发送图像并在结果中获取处理后的图像。
希望你能指导我朝着正确的方向前进。

最佳答案

这是对您的程序的修改,该修改将您的程序发布到 URL 并期望返回 BMP 图像并将输出写入 stdout ,您可以将其重定向到磁盘文件。然而,关键是返回的图像是字节流 r.content .用它做你想做的事。

import requests
import sys

url = 'some-url'
with open("img.bmp", "rb") as f:
file = {"img": f}
r = requests.post(url, files=file)
sys.stdout.buffer.write(r.content)
这是 URL "some-url"上的 Python CGI 程序示例。这只是返回原始 BMP:
#!/usr/bin/env python3
import cgi
import cgitb
import sys

cgitb.enable()

form = cgi.FieldStorage()
fileitem = form['img']
bmp = fileitem.file.read()

print('Content-Type: img/bmp\r\n\r\n', end='', flush=True)
# just send back the original image unmodified
sys.stdout.buffer.write(bmp)

关于python - 在 POST 请求(python 请求)后获取响应/返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65642966/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com