创建HttpService
定义
定义
命名空间:
TouchSocket.Http
TouchSocket.Http.WebSockets
安装:
dotnet add package TouchSocket.Http
一、说明
HttpService是能够提供Http相关服务的基础类型。
二、产品特点
- 支持HTTPS。
- 多种数据接收模式
- 多地址监听(可以一次性监听多个IP及端口)
三、产品应用场景
- HTTP基础使用场景:可跨平台、跨语言使用。
四、服务器架构
服务器在收到新客户端连接时,会创建一个HttpSocketClient的派生类实例,与远程HttpClient对应,后续的数据通信均由此实例负责。

五、支持插件接口
声明自定义实例类,然后实现IHttpPlugin接口,即可实现下列事务的触发。或者继承自HttpPluginBase类,重写相应方法即可。
插件方法 | 功能 |
---|---|
IHttpPlugin | 当收到所有Http请求时。 |
六、使用HttpService
HttpService的创建,基本和TcpService一致,也可以通过继承实现,下列仅演示最简单实现。
HttpService的相关事务,会通过插件触发。
6.1 创建HttpService
var service = new HttpService();
service.Setup(new TouchSocketConfig()//加载配置
.SetListenIPHosts(7789)
.ConfigureContainer(a =>
{
a.AddConsoleLogger();
})
.ConfigurePlugins(a =>
{
//以下即是插件
a.Add<MyHttpPlug1>();
a.Add<MyHttpPlug2>();
a.Add<MyHttpPlug3>();
a.Add<MyHttpPlug4>();
//default插件应该最后添加,其作用是
//1、为找不到的路由返回404
//2、处理header为Option的探视跨域请求。
a.UseDefaultHttpServicePlugin();
}));
service.Start();
提示
DefaultHttpServicePlugin插件最好添加在插件中,如果没有添加的话,最好自己做好缺省路由和跨域配置。
6.2 使用插件处理请求参数
6.2.1 Query参数
string value = e.Context.Request.Query["key"];
6.2.2 Header参数
string value = e.Context.Request.Headers["key"];
亦或者
string value = e.Context.Request.Headers[HttpHeaders.Cookie];
6.2.3 Form参数
string value = e.Context.Request.Forms["key"];