簡體   English   中英

在 FastAPI 中獲取原點 URL

[英]Get origin URL in FastAPI

是否可以獲得來自 FastAPI 的請求的 URL?

例如,如果我有一個在api.mysite.com/endpoint請求的端點,並且從www.othersite.com向該端點發出請求,有沒有辦法可以檢索字符串“www.othersite.com " 在我的端點 function 中?

問題的前提,可以表述為

服務器可以識別請求來自的 URL

被誤導了。 確實,一些 HTTP 請求(尤其是瀏覽器發出的一些請求)帶有Origin header和/或Referer [sic] header 此外, Forwarded的 header (如果存在)包含有關發出請求的位置的信息。 但是,HTTP 規范中的任何內容都沒有要求請求通常宣傳它們的來源。

因此,無論是使用 FastAPI 還是其他一些服務器技術,都無法確定請求來自何處。

根據FastAPI 文檔,因此Starlette 的

假設您想在路徑操作 function 中獲取客戶端的 IP 地址/主機

@app.get("/items/{item_id}")
def read_root(item_id: str, request: Request):
    client_host = request.client.host
    return {"client_host": client_host, "item_id": item_id}

請注意,正如其他人所指出的,如果您使用 nginx,則需要向 nginx 請求添加標頭以處理該數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM