c# 监听http请求

HttpListener 类

属性

AuthenticationSchemes

验证身份的类型: 默认是匿名认证, 暂时还不知道用法

AuthenticationSchemeSelectorDelegate

用户身份验证委托

IsListening

获取HttpListener是否启动,Start() 启动服务

IsSupported

获取当前操作系统可不可以使用 HttpListener

Prefixes

HttpListener 需要监听的网络地址

TimeoutManager 获取超时管理器

方法

Abort 方法

关闭HttpListener对象 放弃还未处理的请求

 

BeginGetContext(AsyncCallback,Object);  开始监听客户端请求

AsyncCallback: 当有请求是触发的方法

Object 执行AsyncCallback 参数 IAsyncResult.AsyncState属性

 

Close() 关闭HttpListener释放资源

EndGetContext(IAsyncResult)  结束监听 返回客户端请求的内容

 

GetContext() 同步监听请求

Start() 开启HttpListener服务

Stop() 关闭HttpListener服务

 

简单的异步处理Http请求

方式1

void Start(){
            //listener.AuthenticationSchemes = AuthenticationSchemes
            
            string ip = "127.0.0.1";
            int port = 80;
            
            HttpListener listener = new HttpListener();
            
            listener.Prefixes.Add("http://"+ip + ":" + port + "/");
            
            listener.Start();
            
            listener.BeginGetContext(new AsyncCallback(GetContextCallBack),listener);
            
        }
        
        void GetContextCallBack(IAsyncResult result){

           //会产生新的线程
            HttpListener listener = result.AsyncState as HttpListener;
            
            HttpListenerContext context = listener.EndGetContext(result);
            
            
            listener.BeginGetContext(new AsyncCallback(GetContextCallBack),listener);
            
            //拿到listener就可以做对客户端响应了
            
        }

你可能感兴趣的:(c#)