fastapi 中间件 打印body信息

参考

https://stackoverflow.com/questions/69669808/fastapi-custom-middleware-getting-body-of-request-inside

原因:框架问题
处理思路:手动赋予request的一个属性,然后再获取


async def set_body(request: Request, body: bytes):
    async def receive():
        return {"type": "http.request", "body": body}
    request._receive = receive

async def get_body(request: Request) -> bytes:
    body = await request.body()
    await set_body(request, body)
    return body

try:
    await set_body(request, await request.body())
    body = await get_body(request)
    logger.info(f" Body: {body.decode()}")
    
except Exception as e:
    logger.info(f" Body : {e}")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值