当前位置: 首页 > news >正文

上海网站建设定制公谷歌推广培训

上海网站建设定制公,谷歌推广培训,免费做网站网站有人哪些,淮南餐饮网站建设需求背景: 需要再中间件中获取body 中的信息 但是 又想要在之后 还可以重复取 这个body 因为有的接口写法是直接从body中获取参数,然而这个body是数据流的形式,一旦取一次就导致后面取不到里面的值了 。 解决方式: 1.保存请求体: 在中间件中读取请求…

需求背景:

需要再中间件中获取body 中的信息 但是 又想要在之后 还可以重复取 这个body 因为有的接口写法是直接从body中获取参数,然而这个body是数据流的形式,一旦取一次就导致后面取不到里面的值了 。

解决方式:

1.保存请求体

在中间件中读取请求体后,将其保存到一个变量中,并将其附加到请求中,以便后续处理函数可以访问。

from fastapi import FastAPI, Request
from starlette.middleware.base import BaseHTTPMiddleware
from starlette.middleware.cors import CORSMiddlewareapp = FastAPI()class CustomMiddleware(BaseHTTPMiddleware):async def dispatch(self, request: Request, call_next):# 读取请求体body = await request.body()  # 获取原始请求体request._body = body  # 将其附加到请求对象# 继续处理请求response = await call_next(request)return response# 添加中间件
app.add_middleware(CustomMiddleware)@app.post("/items/")
async def create_item(request: Request):# 读取请求体body = await request.json()  # 现在可以安全读取return {"body": body}

但是这里有点问题  如果create_item(request: Request) 是这样的写法 create_item(xxx: xxx = Body()) 这里会默认的从body中读取数据而不是我们重新放进去的 _body ,而这用用法比较多的时候我们改动范围比较大所以需要第二种方式实现

2.将body原路塞回去

class LoggingMiddleware(BaseHTTPMiddleware):async def dispatch(self, request: Request, call_next):request_body = await request.body()# 定义一个新的 receive 方法,返回缓存的请求体async def receive():return {"type": "http.request", "body": request_body}# 替换请求的 _receive 方法request._receive = receive

这样做的话再其他的地方再次调用 request.body()了  不需要大范围的修改 create_item(xxx: xxx = Body()) 这种写法了

http://www.15wanjia.com/news/23586.html

相关文章:

  • 网站建设 英文版搜狐新闻手机网
  • 网站图片加载优化链接优化方法
  • wordpress和emlog整站优化全网营销
  • 网站开发项目计划wbs百度关键词在线优化
  • 佛山三水区有没有网站建设公司石家庄网站seo外包
  • 厦门正规网站建设企业站长工具域名查询社区
  • 做网站切片网络营销策划步骤
  • 新网网站制作sem竞价托管费用
  • 微网站怎样做外贸网站推广怎么做
  • 苏州做网站优化哪家好seo关键词优化哪个平台好
  • 贵州做网站的公司有哪些市场营销策划方案案例
  • 蝌蚪窝一个释放做网站百度竞价点击神器
  • 百色网站建设免费顶级域名注册网站
  • 商务网站规划与设计实训报告郑州seo教程
  • win2003 网站服务器北京网站定制公司
  • 做游戏类型的网站的好处平台推广方式
  • 网站被墙301怎么做附近电脑培训班位置
  • 如何策划电子商务的网站建设外贸网络推广服务
  • java做网站的步骤营销方案包括哪些内容
  • 网站服务器人多怎么挤进去自动优化app
  • 免费网站搭建系统网络推广网站排行榜
  • 美女和帅哥做私人动作的漫画的网站什么是引流推广
  • edu网站开发seo网站设计
  • 罗定疫情最新消息百度seo培训
  • 用什么系统程序做评测网站新闻发稿发布平台
  • 网站怎么做扫码微信支付关键词优化公司如何选择
  • 商标注册查询网址天津seo排名效果好
  • 泉州微信网站开发公司搜索指数分析
  • 阿里巴巴怎么做公司网站最新足球消息
  • 网站必须做等保合规百度搜索引擎广告投放