【问题标题】:FastAPI RedirectResponse custom headersFastAPI RedirectResponse 自定义标头
【发布时间】:2020-09-28 14:25:18
【问题描述】:

基于my previous question,我现在需要在响应中添加一个标头。

根据the documentation,我可以简单地将标题和另一个属性添加到RedirectResponse 对象。

当我对此进行测试时,它似乎没有携带标头值。

根据this post,无法为重定向请求设置标头。因此,也许我应该尝试其他方法而不是重定向?

有什么想法吗?

from fastapi import FastAPI, Request
from starlette.responses import RedirectResponse

app = FastAPI()

@app.get("/data/")
async def api_data(request: Request):
    params = str(request.query_params)
    url = f'http://some.other.api/{params}'
    headers = {'Authorization': "some_long_key"}
    response = RedirectResponse(url=url, headers=headers)
    return response

【问题讨论】:

    标签: python fastapi


    【解决方案1】:

    一种解决方案是在应用程序中执行请求,然后返回响应

    但是这是非常低效并且会强制所有流量通过此服务器,而重定向会减少网络负载

    import requests
    from fastapi import FastAPI, Request, Response
    
    app = FastAPI()
    
    @app.get("/data/")
    async def api_data(request: Request):
        params = str(request.query_params)
        url = f'http://some.other.api/{params}'
        headers = {'Authorization': "some_long_key"}
        r = requests.get(url, headers=headers)
        return Response(content=r.content)
    

    【讨论】:

      猜你喜欢
      • 2018-07-18
      • 1970-01-01
      • 2023-02-01
      • 2014-12-25
      • 2018-12-18
      • 2016-04-05
      • 2011-01-04
      • 1970-01-01
      • 2022-07-28
      相关资源
      最近更新 更多