2010-10-05 203 views
0

我不知道我是否在問正確的問題。響應HTTP POST

我們有一個網絡應用程序,我們正在嘗試第三方POST。我們正在爲他們創建一個特殊的登錄頁面,他們可以通過POST提交我們需要的數據。

我不知道如何迴應他們的請求,我認爲我處理爲一個傳入的HttpRequest。我是否在PageLoad或其他事件中處理他們的數據?在哪裏/如何包含這些數據?

我是否必須使用HttpListener或ProcessRequest處理程序,或者是什麼?

在這裏或谷歌上搜索時,會發現很多關於如何發佈到其他網站的結果,但似乎無法找到關於如何成爲「其他」網站並處理收到的POST數據的相關網站。

同樣,我不確定我是否在問這個問題。

編輯:我找到了Page.ProcessRequest Method in the MSDN library,但問說:「你不應該調用此方法」

謝謝!

回答

0

最好是使用IHttpHandler,但可以使用標準的ASP.NET頁面來做你想做的事情。使用PageLoad是好的,您可以訪問RequestResponse屬性,這些屬性爲您提供處理HTTP請求所需的所有內容。例如,要獲取表單參數,可以使用Request["input1"]獲取名稱爲「input1」的表單輸入值(查詢字符串,表單發佈或cookie)。

你需要做什麼來回應這個帖子的要求?你需要返回什麼樣的數據?在此之前,難以進一步提供幫助。

+0

那麼,我們的應用程序允許我們自己的用戶輸入數據。我們希望第三方能夠將自己的數據輸入到我們的網站,而不是我們爲他們輸入數據。爲什麼要這樣做?因爲他們收集了我們自己的Web應用程序所需的數據的超集。這樣,他們只會向我們發佈我們網絡應用程序所需的數據子集。他們只會自動向我們傳遞數據,而不是通過我們自己的表單輸入。驗證和消毒當然會在這些數據上進行。 – Marc 2010-10-05 00:52:49

+0

@Marc,您的用戶當前如何通過POST輸入數據? – 2010-10-05 01:05:45

+0

@Marc,所以第三方正在編寫HTML頁面,但表單元素上的'action'指向你的服務器? – 2010-10-05 01:49:38

1

你真的需要看看ASP.NET的基礎知識。即使這是一個IHttpHandler最適合的情況,我建議在這種情況下使用.aspx頁面,因爲它是開始學習的最佳位置,您可以稍後轉移到IHttpHandler。

如果數據發佈在application/x-www-form-urlencoded或multipart/form-data(網頁上的表單使用的兩種格式 - 如果他們還沒有告訴你他們使用什麼格式,那麼它是可能是其中的一個),Request.Form屬性(實際上是一個屬性的屬性)將充當發送數據的字典(例如,如果它們有一個名爲「foo」的字段,那麼Request.Form["foo"]將以字符串的形式返回它的值)。否則,你會想使用Request.InputStream並從中讀取。儘管後者稍微有點牽強。