.NET Framework拦截HTTP请求的实现

 更新时间:2024年03月06日 09:24:18   作者:菜鸟厚非  
本文主要介绍了.NET Framework拦截HTTP请求的实现,主要用于记录 HTTP 信息,调试程序、分析程序性能等方面,具有一定的参考价值,感兴趣的可以了解一下

一、简介

今天讲一下 .NET Framework 程序中拦截 HTTP 请求,这主要用于记录 HTTP 信息,调试程序、分析程序性能等方面。这里贴出实现的核心代码,具体需要结合自己的业务。

二、实现代码

创建一个普通的 HTTPInterceptortHandler 类 ,继承 DelegatingHandler 类,并重写 SendAsync 方法

public class HTTPInterceptortHandler : DelegatingHandler
{
    protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
    {
        // 根据需求调试,获取更多数据
        string requestIP = HttpContext.Current?.Request?.UserHostAddress;
        string requestContent = request.Content?.ReadAsStringAsync()?.Result;
        string requestUri = request.RequestUri.AbsoluteUri;

        return base.SendAsync(request, cancellationToken).ContinueWith<HttpResponseMessage>(
            (task) =>
            {
                string responseContent = task.Result.Content.ReadAsStringAsync().Result;
                string responseCode = task.Result.StatusCode.ToString();

                // 记录日志、加工一下结果等都可以在这里处理

                return task.Result;
            }
        );
    }
}

在 Global.asax 的 Application_Start 方法中注册写好的 HTTPInterceptortHandler 类

public class WebApiApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        // 在 Application_Start 方法添加这一行
        GlobalConfiguration.Configuration.MessageHandlers.Add(new HTTPInterceptortHandler()); 
    }
}

到此这篇关于.NET Framework拦截HTTP请求的实现的文章就介绍到这了,更多相关.NET Framework拦截HTTP内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • VB.NET调用MySQL存储过程并获得返回值的方法

    VB.NET调用MySQL存储过程并获得返回值的方法

    这篇文章主要介绍了VB.NET调用MySQL存储过程并获得返回值的方法,涉及基于VB.NET操作MySQL数据库的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • GridView中checkbox"全选/取消"完美兼容IE和Firefox

    GridView中checkbox"全选/取消"完美兼容IE和Firefox

    GridView中checkbox的的"全选/取消"使用还是比较频繁的,本文有个不错的示例完美兼容IE和Firefox,感兴趣的朋友可以参考下,希望对大家有所帮助
    2013-10-10
  • ASP.NET Core使用AutoMapper实现实体映射

    ASP.NET Core使用AutoMapper实现实体映射

    本文详细讲解了ASP.NET Core使用AutoMapper实现实体映射的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • asp.net fileupload 实现上传

    asp.net fileupload 实现上传

    在vs的视图模式下,添加上传组件,以及添加一个按钮button,随后在后置代码中加入如下信息
    2009-05-05
  • ASP.NETWeb服务器验证控件如何使用

    ASP.NETWeb服务器验证控件如何使用

    这篇文章主要介绍了ASP.NETWeb服务器验证控件如何使用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-09-09
  • DotNetCore深入了解之HttpClientFactory类详解

    DotNetCore深入了解之HttpClientFactory类详解

    这篇文章主要给大家介绍了关于DotNetCore深入了解之HttpClientFactory类的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • c#生成缩略图不失真的方法实例分享

    c#生成缩略图不失真的方法实例分享

    使用.net的方法GetThumbnailImage生成的缩略图失真严重,这里推荐一种不失真生成缩略图的方法
    2013-12-12
  • ASP.NET中相对路径的使用总结

    ASP.NET中相对路径的使用总结

    在.cs页面中输入Response.Write(Request.MapPath(1.jpg))这可以输出图片的物理路径也就是这张图片在服务器上存放的具体路径,下面为大家讲解下相对路径的应用
    2013-08-08
  • ASP.NET Core环境变量配置和启动设置讲解

    ASP.NET Core环境变量配置和启动设置讲解

    这篇文章介绍了ASP.NET Core环境变量配置和启动设置的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • 将datagrid控件内容输出到excel文件

    将datagrid控件内容输出到excel文件

    一个将datagrid控件内容输出到excel文件的demo,感兴趣的朋友可以了解下或许对你学习datagrid控件相关有所帮助
    2006-09-09

最新评论