基于我之前的问题,我现在需要在响应中添加一个标头。
根据文档,我可以简单地将标题和另一个属性添加到RedirectResponse对象中。
当我对此进行测试时,它似乎没有携带标头值。
根据这篇文章,不可能为重定向请求设置标头。所以,而不是重定向,也许我应该尝试其他方法?
有任何想法吗?
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
Run Code Online (Sandbox Code Playgroud)
一种解决方案是在应用程序中执行请求,然后返回响应
但这非常低效,并且将强制所有流量都通过该服务器,而重定向会减少网络负载
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6077 次 |
| 最近记录: |