HttpListener提供一個簡單的、可通過編程方式控制的 HTTP 協議偵聽器。通過它可以很容易的提供 一些Http服務,而無需啟動IIS這類大型服務程序。
注意:該類僅在運行 Windows XP SP2 或 Windows Server 2003 操作系統的計算機上可用。
使用Http服務一般步驟如下:
創建一個HTTP偵聽器對象並初始化
添加需要監聽的URI 前綴
開始偵聽來自客戶端的請求
處理客戶端的Http請求
關閉HTTP偵聽器
其中3,4兩步可以循環處理,以提供多客戶多次請求的服務。
創建一個HTTP偵聽器對象
創建HTTP偵聽器對象只需要新建一個HttpListener對象即可。
HttpListener listener = new HttpListener();
初始化需要經過如下兩步
添加需要監聽的URL范圍至listener.Prefixes中,可以通過如下函數實現:
listener.Prefixes.Add(prefix) //prefix必須以'/'結尾
調用listener.Start()實現端口的綁定,並開始監聽客戶端的需求。
接受HTTP請求
在.net2.0中,通過HttpListenerContext對象提供對HttpListener類使用的請求和響應對象的訪問。
獲取HttpListenerContext的最簡單方式如下:
HttpListenerContext context = listener.GetContext();
該方法將阻塞調用函數至接收到一個客戶端請求為止,如果要提高響應速度,可使用異步方法 listener.BeginGetContext()來實現HttpListenerContext對象的獲取。
處理HTTP請求
獲取HttpListenerContext後,可通過Request屬性獲取表示客戶端請求的對象,通過Response屬性取 表示 HttpListener 將要發送到客戶端的響應的對象。
HttpListenerRequest request = context.Request;
HttpListenerResponse response = context.Response;
這裡的HttpListenerRequest對象和HttpListenerResponse對象和Asp中的Request和Response的使用方 式類似,這裡就不多說了,具體的使用可以參看下面的例子。