Код: Выделить всё
png
Это мой код fastapi:
Код: Выделить всё
@app.post("/api/")
async def dummy_file_return(metadata=Body(...),file=File(...)):
print("content_type is")
print(file.content_type)
Код: Выделить всё
$curl -X POST -F file=@0_for_django_testcase.png -F metadata='{"meta":"test"}' localhost:8008/api/
content_type равен
image/png
Я вижу, что content_type угадывается автоматически, а image/png устанавливается.
Затем Я пробовал то же самое по запросам python.
Код: Выделить всё
response = requests.post(
url,
data={"metadata":json.dumps({"meta":"test")},
files = {
"file": open('0_for_django_testcase.png','rb')
},
)
content_type
< р>
Код: Выделить всё
content_type
Почему возникает такая разница?
В любом случае загрузка файла успешна, однако есть разница для content_type.
Я не устанавливаю заголовок для Curl, флаг -F тайно отправляет некоторые заголовки?
Еще одно испытание: я тестировал эти шаблоны с заголовками, но оба возвращают ошибка.
Код: Выделить всё
response = requests.post(
url,
data={"metadata":json.dumps({"meta":"test")},
files = {
"file": open('0_for_django_testcase.png','rb')
},
headers={
"Content-Type":"image/png"
}
)
response = requests.post(
url,
data={"metadata":json.dumps({"meta":"test")},
files = {
"file": open('0_for_django_testcase.png','rb')
},
headers={
"Content-Type":"multipart/form-data"
}
)
Подробнее здесь: https://stackoverflow.com/questions/766 ... url-than-p