服务器之家

服务器之家 > 正文

asp.net 截取Http请求的实现代码

时间:2019-09-04 10:39     来源/作者:ASP.NET之家

1:前言 
本篇文章比较短,主要是因为我的一个随想产生的一段代码。 这段代码的功能你可以叫做是简单的Http服务器也可以叫做Http请求截取。它实现的功能就是截取Http请求然后自己做处理。 
2:代码 

复制代码代码如下:


public class HttpServer : IDisposable 

private HttpListener listener; 
public void Start() 

listener = new HttpListener(); 
listener.Prefixes.Add("http://localhost/"); 
listener.AuthenticationSchemes = AuthenticationSchemes.IntegratedWindowsAuthentication | AuthenticationSchemes.Anonymous; 
listener.Start(); 
listener.BeginGetContext(GetContext, null); 

private void GetContext(IAsyncResult ar) 

HttpListenerRequest Request; 
HttpListenerResponse Response; 
try 

HttpListenerContext ctx = listener.EndGetContext(ar); 
Request = ctx.Request; 
Response = ctx.Response; 
//setup waiting for the next request 
listener.BeginGetContext(GetContext, null); 

catch (InvalidOperationException) 

return; 

catch (HttpListenerException) 

return; 

try 

var sw = new StreamWriter(Response.OutputStream); 
sw.Write(@"<html><body><p>你的请求已经被截取</p></body></html>"); 
sw.Flush(); 

finally 

Response.OutputStream.Flush(); 
Response.Close(); 


public void Dispose() 

if (listener != null) 
listener.Stop(); 


3:简单解释一下 
代码的核心就是HttpListener,通过它去侦听一个端口,当有请求的时候BeginGetContext交给GetContext方法进行异步处理,在这个方法的内部首先实现的就是重新监听。然后进行自己的处理。 
呵呵,这段代码有什么其他用处待考虑。

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
叠猫猫队长可以退出吗 叠猫猫队长怎么换队伍
叠猫猫队长可以退出吗 叠猫猫队长怎么换队伍 2019-06-05
逃跑吧少年怎么卡皮肤 逃跑吧少年卡永久皮肤技巧
逃跑吧少年怎么卡皮肤 逃跑吧少年卡永久皮肤技巧 2019-06-21
返回顶部