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

 更新时间:2010年06月01日 18:23:16   作者:  
本篇文章比较短,主要是因为我的一个随想产生的一段代码。 这段代码的功能你可以叫做是简单的Http服务器也可以叫做Http请求截取。它实现的功能就是截取Http请求然后自己做处理。
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方法进行异步处理,在这个方法的内部首先实现的就是重新监听。然后进行自己的处理。
呵呵,这段代码有什么其他用处待考虑。

相关文章

  • 手动把asp.net的类生成dll文件的方法

    手动把asp.net的类生成dll文件的方法

    当我们在开发的时候,有时会将一些方法封装起来供别人调用,下面就是一种生成DLL的方法.
    2009-11-11
  • WPF开发之利用DrawingVisual绘制高性能曲线图

    WPF开发之利用DrawingVisual绘制高性能曲线图

    通过WPF实现大数据曲线图时,如果用最基础的Canvas来实现,性能堪忧。所以本文将利用DrawingVisual绘制高性能曲线图,感兴趣的可以了解一下
    2022-02-02
  • VS Code 1.26 发布 有你想要的新特性?

    VS Code 1.26 发布 有你想要的新特性?

    VS Code 1.26 发布,有你想要的新特性吗?这篇文章主要为大家详细介绍了VS Code 1.26一些主要的更新亮点,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • asp.NET 脏字过滤算法 修改版

    asp.NET 脏字过滤算法 修改版

    我们网站的脏字字典中大概有600多个词,而且会发生变化,因此简单的在数据新增/修改的时候做一次脏字过滤是不够的。在网站从.NET 1.1到2.0改版的时候,对新版的测试发现旧的脏字过滤算法耗费的时间过长,需要做一些优化。
    2009-10-10
  • .NetCore基础之读取配置文件详解

    .NetCore基础之读取配置文件详解

    在应用程序开发中,配置文件是主要存储系统的初始配置信息,配置文件的读取虽然属于基础内容却又经常用到。本文将详细为大家介绍.Net Core 如何读取配置文件的,需要的可以参考一下
    2022-03-03
  • .Net判断一个对象是否为数值类型实例

    .Net判断一个对象是否为数值类型实例

    这篇文章主要介绍了.Net判断一个对象是否为数值类型的方法,实例讲述了一个国外的示例并对其进行了改进,非常实用,需要的朋友可以参考下
    2014-10-10
  • .Net中MoongoDB的简单调用图文教程

    .Net中MoongoDB的简单调用图文教程

    这篇文章主要给大家介绍了关于.Net中MoongoDB的简单调用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-10-10
  • asp.net AJAX实现无刷新获得数据

    asp.net AJAX实现无刷新获得数据

    提供一个使用AJAX实现无刷新判断注册用户名是否被注册的代码:
    2008-11-11
  • asp.net 页面回跳实现代码

    asp.net 页面回跳实现代码

    今天做登录时,遇到点小问题,在网上找了一下,没看到源码案例,不过还是花了一点时间调试通过了在此记录一下,备忘。
    2010-03-03
  • ASP.NET Core中调整HTTP请求大小的几种方法详解

    ASP.NET Core中调整HTTP请求大小的几种方法详解

    这篇文章主要给大家介绍了关于在ASP.NET Core中如何调整HTTP请求大小的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-12-12

最新评论