using System; using System.IO; using System.Threading.Tasks; using TouchSocket.Core; using TouchSocket.Http; using TouchSocket.Rpc; using TouchSocket.Sockets; using TouchSocket.WebApi; using TouchSocket.WebApi.Swagger; #region << 版 本 注 释 >> /*-------------------------------------------------------------------- * 版权所有 (c) 2024 WenJY 保留所有权利。 * CLR版本:4.0.30319.42000 * 机器名称:T14-GEN3-7895 * 命名空间:SlnMesnac.RfidUpload.TouchSocket * 唯一标识:2f39e963-acb9-44d1-9980-27aaa910de29 * * 创建者:WenJY * 电子邮箱: * 创建时间:2024-07-02 15:35:25 * 版本:V1.0.0 * 描述: * *-------------------------------------------------------------------- * 修改人: * 时间: * 修改说明: * * 版本:V1.0.0 *--------------------------------------------------------------------*/ #endregion << 版 本 注 释 >> namespace SlnMesnac.RfidUpload.TouchSocket { public sealed class WebApiServerApp { private static readonly Lazy _lazy = new Lazy(() => new WebApiServerApp()); public static WebApiServerApp Instance { get { return _lazy.Value; } } private WebApiServerApp() { } private ApiServer apiServer = ApiServer.GetInstance(); public void Init() { try { var service = new HttpService(); service.Setup(new TouchSocketConfig() .SetListenIPHosts(7789) .ConfigureContainer(a => { a.AddRpcStore(store => { store.RegisterServer(apiServer);//注册服务 }); a.AddCors(corsOption => { corsOption.Add("cors", corsBuilder => { corsBuilder.AllowAnyMethod() .AllowAnyOrigin(); }); }); a.AddLogger(logger => { logger.AddConsoleLogger(); logger.AddFileLogger(); }); }) .ConfigurePlugins(a => { a.UseCheckClear(); a.Add(); a.UseWebApi() .ConfigureConverter(converter => { converter.AddJsonSerializerFormatter(new Newtonsoft.Json.JsonSerializerSettings() { Formatting = Newtonsoft.Json.Formatting.None }); }); a.UseSwagger();//使用Swagger页面 //.UseLaunchBrowser(); a.UseDefaultHttpServicePlugin(); })); service.Start(); Console.WriteLine("以下连接用于测试webApi"); Console.WriteLine($"使用:http://127.0.0.1:7789/swagger/index.html"); }catch(Exception ex) { Console.WriteLine(ex.ToString()); } //Console.ReadLine(); } } internal class AuthenticationPlugin : PluginBase, IHttpPlugin { public async Task OnHttpRequest(IHttpSocketClient client, HttpContextEventArgs e) { await e.InvokeNext(); } } }