当前位置: 首页 > 知识库问答 >
问题:

FastAPI重定向响应自定义标头

屠锦
2023-03-14

基于我之前的问题,我现在需要在响应中添加一个标题。

根据留档,我可以简单地将标头和另一个属性添加到重定向响应对象。

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

根据这篇文章,为重定向请求设置标题是不可能的。所以除了重定向,也许我应该试试别的?

有什么想法吗?

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

共有1个答案

杨星纬
2023-03-14

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

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

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)
 类似资料:
  • 问题内容: 我正在努力实现以下目标。 从Request中读取自定义标头及其值: 现在,在响应时,我想在HTTP响应中返回相同的标头对。 我正在使用JAX-RS Web服务的Jersey 2.0实现。 当我发送请求URL时,也会传递请求标头(目前,虽然是Firefox插件-对其进行硬编码)。 收到对该URL的请求后,将调用以下方法: 我该如何实现?任何指针都很棒! 问题答案: 只需注入a 作为方法参

  • Apache可以让网站管理员自己自定义对一些错误和问题的响应。 自定义的响应可以定义为当服务器检测到错误或问题时才被激活。 如果一个脚本崩溃并产生"500 Server Error"响应,那么这个响应可以被更友好的提示替换或者干脆用重定向语句跳到其他的URL(本地的或外部的)。 行为 老式的行为 Apache1.3 会响应一些对于用户没有任何意义的错误或问题信息,而且不会将产生这些错误的原因写入日

  • 例如,我试图向www.testjson发出GET请求。com/json,但响应是从不同的域URL检索的,例如www.testjson。com/confirmJson。 Spring mvc是否支持此功能,特别是restTemplate.exchange功能。 我目前正在做这类事情,但我得到一个500状态码(内部服务器错误),无法找出到底是什么导致了错误。 那么RestTemplate真的可以管理重

  • 我无法根据用户登录获得任何自定义身份验证重定向。

  • 当使用自定义重定向URL配置Spring security时,该URL使用基本URI模板变量,如下所示:https://docs.Spring.io/Spring-security/site/docs/5.2.12.release/reference/html/oauth2.html#oauth2client-auth-code-redirect-uri 应用程序进入了太多重定向的循环。 此配置工

  • 请帮助我了解我应该在哪里更新失败案例的实际合同?