2013-05-09 82 views
0

我遇到問題:我正在django中開發一個必須響應遠程請求的API視圖。在Django中檢索從中發出API請求的URL

有沒有辦法知道API調用從哪個url開始?

謝謝

+0

你的意思是來自用戶的IP?或者你正在尋找或整個網站的網址? – 2013-05-09 12:43:04

+0

當整個網站的網址! – 2013-05-09 13:06:21

回答

0

是,在HTTP頭中,會有一個Referer的線,這是從客戶端來了,如果他們選擇把它的URI。有些人選擇做事情而不發送,在這種情況下,你可以做的事情不多。

有幾篇關於解析HTTP頭文件的文章,你可以使用其中的一個並借用他們的方法。

這是有幾個很好的例子在它的職位之一:Parse raw HTTP Headers

你只需要做的Django抽絲頭,所以你可以分析他們,這是不難做到的,我相信有用於在Web應用程序中獲取標題的標準庫中的函數。

+0

是的,重要的是,在一些請求中出現這個頭,但在其他請求沒有。 那麼解決方案是強制發送? 我怎樣才能讓http_referer發送? 非常感謝你 – 2013-05-09 12:53:35

+0

對,如果這個標題不存在,沒有一個很好的方法可以找出來自其他地方的來電,而不是來自你的網站的某個地方,你可以查看網站記錄。如果他們來自其他地方或直接將呼叫輸入程序,或者不發送標題,則無法很好地知道它們來自哪裏。 – 2013-05-09 12:55:07

+0

以及如何才能爲http_referer ti發送正確的值? 在我的情況下,api調用是在視圖中使用urllib – 2013-05-09 12:57:29