2011-07-18 142 views
7

我有一個C#表單應用程序,我想要偵聽來自其他計算機的傳入HTTP請求。收聽HTTP請求

我該怎麼做呢?

+0

@Egil,請使用您正在使用的技術進行標記,避免人們猜測框架。當然你可以使用ASP .NET,如果你已經有了Web服務器的一部分,這通常意味着在IIS下運行,但我懷疑事實並非如此。 – driis

回答

13

對於簡單的需求,HttpListener類是一個很好和簡單的選擇。鏈接的MSDN頁面上有一個示例。

如果由於某種原因,你不能使用HttpListener,該過程會聽使用TcpClient(甚至套接字API,如果你需要堅韌不拔的細節)端口,然後實現HTTP Protocol。我強烈推薦HttpListener滾動你自己的,除非你有HttpListener不符合的具體要求。

+0

這是否也讓我可以聽取其他計算機的請求(例如,我的手機上的瀏覽器)? – Egil

+0

是的,'HttpListener'實質上是將你的應用程序變成一個迷你HTTP服務器。 – driis

+0

我認爲這是一個更好的方法。 – Tocco

0

您可以使用ASP.NET Http Filters來攔截HTTP請求。
查看更多詳情here

+0

這也適用於表單應用程序嗎? – Egil

+0

我想,如果他問如何聽取傳入的請求,這不是什麼ASP .NET。 – driis

+0

@Egil否這不會 - 您可以使用ASP.Net來處理HTTP請求(即生成響應文檔),但您仍然需要理解HTTP協議(即Web服務器)的部分。 – Justin

0

如果是asp.net應用程序,可以在global.asax的Application_BeginRequest事件處理程序中檢查http請求。