2011-04-04 110 views
0

我們有一個Rails站點,它也連接到我們的供應商以從它們獲取XML信息。爲此,我使用Net::HTTP從我們的終端發出請求,並將其視爲「黑匣子」。如何在服務器上處理HTTP請求

現在我們的供應商之一想要隨機發送XML數據給我們。即它們是使得爲HTTP請求,而不僅僅是響應我們的HTTP請求之一。

既然桌子已經打開了我們,我是否需要在我們的服務器上設置一些'特殊'來傾聽他們的請求?

邏輯表示他們的HTTP請求與瀏覽器所做的沒有任何不同,在這種情況下,我需要做的就是告訴他們指向哪個「控制器/方法」。

我的問題是,這真的很簡單,還是我必須設置其他的東西?

回答

0

最基本的就是這麼簡單。處理HTTP POST或PUT請求的控制器方法將執行此操作。但是,其他方面可能會出現複雜性:您需要決定是否要做某些事情,以確保數據只來自您期望的位置,如果數據缺少關鍵字段應該怎麼辦(您通常會捕獲驗證併發回給用戶)。

+0

感謝您的回覆。這是一種解脫。還有一個問題。他們將做一個POST方法。如何訪問控制器中的POST內容?我讀過有一個'Request'對象,它有3個訪問器方法。但是,如何引用控制器內的「請求」對象? – nexar 2011-04-04 13:28:18

+0

res = RestClient.post「http:// localhost:3000/xml」,:xml =>'<?xml version =「1.0」?>這裏是龍'那麼rdebug的結果是:(rdb:3) eval params [:xml] 「<?xml version = \」1.0 \「?> Here is dragons」 – mikewilliamson 2011-04-05 01:42:51

0

我認爲它沒什麼大不了的。您可以通過從請求中獲取xml來獲取爲請求提供服務的URL(控制器/操作),並返回一些標記(文本)。您必須將該URL提供給供應商,並要求他以相同的方式發佈xml。