#python #python-requests #fastapi
Вопрос:
Я хочу знать, как использовать запросы при использовании двух файлов изображений в качестве входных данных.
сервер
from fastapi import FastAPI, File
app = FastAPI()
@app.post("/images")
def images(img1: bytes = File(...), img2: bytes = File(...)):
# **do something**
return {"message": "OK"}
Мне удалось опубликовать сообщение с curl
командой, как показано ниже,
curl -X POST
'http://127.0.0.1:8000/images'
-H 'accept: application/json'
-H 'Content-Type: multipart/form-data'
-F 'img1=@<IMG1_FILE>;type=image/<EXTENSION>'
-F 'img2=@<IMG2_FILE>;type=image/<EXTENSION>'
но я потерпел неудачу со сценариями, использующими запросы, как показано ниже, и получил 400 BAD Request
import requests
url = "http://127.0.0.1:8000/images"
headers = {"accept": "application/json", "content-type": "multipart/form-data"}
files = {"img1": open("img1_path.jpg", "rb"), "img2": open("img2_path.jpg", "rb")}
response = requests.post(url, headres=headers, files=files)
кто-нибудь может мне помочь??
Комментарии:
1.
headeres=headers
— ты это имел в видуheaders=headers
?2. извините, это опечатка, да
headers=headers
3. но исправленная опечатка не имеет значения, исправлена ли эта проблема
Ответ №1:
Во-первых, убедитесь, что вы установили python-multipart
пакет.
Затем удалите заголовки content-type
запроса «от», как показано ниже:
import requests
url = "http://127.0.0.1:8000/images"
headers = {"accept": "application/json"}
files = {"img1": open("img1_path.jpg", "rb"), "img2": open("img2_path.jpg", "rb")}
response = requests.post(url, headers=heaers, files=files)
Комментарии:
1. спасибо, что это сработало!