• 怎样截取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方法进行异步处理,在这个方法的内部首先实现的就是重新监听。然后进行自己的处理。

        呵呵,这段代码有什么其他用处待考虑。 

    ......
  • 相关阅读:
    java中数据的传递方式到底是怎样的!
    Hibernate 入门
    java web 答辩总结
    java web项目答辩答辩题总结(书本网上语言答辩+自己的语言答辩)
    森林病虫防治系统 (结束)
    Ajax 基础
    森林病虫防治系统 (十三)
    VS2017专业版和企业版激活密钥
    Dapper.NET——轻量ORM
    .NET ORM 哪家强
  • 原文地址:https://www.cnblogs.com/shawen/p/1745210.html
Copyright © 2020-2023  润新知