我已经为fastapi编写了代码,我的API需要输入base64 gif字符串,我得到这个错误基本上问题是当我传递了一个大字符串然后我得到这个错误,但是当我传递了小或平均大小的字符串然后API成功运行并给我一个响应。有谁知道怎么解决这个错误吗?
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import FileResponse
import base64
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials= True,
allow_methods=["*"],
allow_headers=["*"],
)
@app.get("/myapp",response_class=FileResponse)
async def detection(gif_url: str,img_url: str):
gif_data = base64.b64decode(gif_url)
gif_data_file = open("source.gif", "wb")
gif_data_file.write(gif_data)
return {"message":"Gif saved"}
gif_url接收base64 GIF字符串
这实际上是由Uvicorn使用的h11
引起的。我假设您正在使用Uvicorn运行此程序。最近,它添加了一个选项,可以帮助您解决这个问题:
* `--h11-max-incomplete-event-size <int>` - Set the maximum number of bytes to buffer of an incomplete event. Only available for `h11` HTTP protocol implementation. **Default:** *'16384'* (16 KB).
试着提高这个值来满足你的需求。