【问题标题】:Requests, FastAPI, Error in Minimial Code [duplicate]请求,FastAPI,最小代码错误[重复]
【发布时间】:2025-12-02 19:10:01
【问题描述】:

请,这个最小代码给我这个请求错误: 400 {"detail":"解析正文时出错"} 但它在 swagger ui 上工作得很好。

ma​​in.py

import shutil
import uvicorn
from fastapi import FastAPI, File, UploadFile

app = FastAPI()

@app.post("/upload")
async def upload(file: UploadFile = File(...)):  
    try:
        with open('save.txt', "wb") as buffer:
            shutil.copyfileobj(file.file, buffer)
    except:
        return {'State':'Fail'}
    finally:
        file.file.close()
    return {'State':'Done'}
    
if __name__ == "__main__":
    uvicorn.run("main:app", host="127.0.0.1",
     port=8000, log_level="debug", reload="true")
 

query.py

import requests

url = 'http://localhost:8000/upload'
headers = {'Content-Type':'multipart/form-data'}
files = [
("file", ("file1.txt", open("F://test.txt", "rb"), "text/txt"))
]
response = requests.post(url, files=files,  headers=headers)    
print(response.status_code, response.text)   

# The response is :
# 400 {"detail":"There was an error parsing the body"}

【问题讨论】:

标签: file python-requests upload multipart fastapi


【解决方案1】:

它在没有标题的情况下工作。

使用 python 'aiohttp' 发送文件会产生“解析正文时出错”

response = requests.post(url, files=files)

【讨论】: