2011-07-18 50 views
7

Tôi có một ứng dụng biểu mẫu C# mà tôi muốn nghe các yêu cầu HTTP đến từ các máy tính khác.Nghe các yêu cầu HTTP

Tôi làm cách nào để thực hiện việc này?

+0

@Egil, vui lòng gắn thẻ với công nghệ bạn đang sử dụng, nó sẽ tránh mọi người đoán khuôn khổ. Tất nhiên bạn có thể sử dụng ASP .NET nếu bạn đã có một phần máy chủ web, mà nói chung có nghĩa là chạy dưới IIS, nhưng tôi nghi ngờ đây không phải là trường hợp. – driis

Trả lời

13

Đối với nhu cầu đơn giản, lớp học HttpListener là lựa chọn tốt và đơn giản. Có một ví dụ trên trang MSDN được liên kết.

Nếu vì một lý do nào đó, bạn không thể sử dụng HttpListener, quá trình sẽ là nghe cổng bằng cách sử dụng TcpClient (hoặc thậm chí API ổ cắm nếu bạn cần chi tiết gớm ghiếc) và sau đó triển khai HTTP Protocol. Tôi rất khuyên bạn nên HttpListener trên cán của riêng bạn, trừ khi bạn có yêu cầu cụ thể mà HttpListener không đáp ứng.

+0

Điều này cũng cho phép tôi nghe các yêu cầu từ các máy tính khác (ví dụ: trình duyệt của tôi trên điện thoại của tôi)? – Egil

+0

Có, 'HttpListener' về bản chất biến ứng dụng của bạn thành một máy chủ HTTP mini. – driis

+0

Tôi nghĩ đó là cách tiếp cận tốt hơn. – Tocco

0

Bạn có thể sử dụng Bộ lọc ASP.NET Http để chặn các yêu cầu HTTP.
Xem chi tiết hơn here

+0

Tác vụ này cũng sẽ áp dụng cho một ứng dụng biểu mẫu? – Egil

+0

Tôi đoán, nếu anh ta hỏi làm thế nào để lắng nghe yêu cầu đến, rằng đây không phải là bất cứ điều gì ASP .NET. – driis

+0

@Egil Không điều này sẽ không - bạn có thể sử dụng ASP.Net để xử lý các yêu cầu HTTP (tức là tạo tài liệu phản hồi), nhưng bạn vẫn cần phần hiểu giao thức HTTP (tức là máy chủ web). – Justin

0

Nếu đó là ứng dụng asp.net, bạn có thể kiểm tra yêu cầu http trong trình xử lý sự kiện Application_BeginRequest của global.asax.