代码拉取完成,页面将自动刷新
同步操作将从 bensenplus/x-browser 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.FileProviders;
namespace Xbrowser
{
public class HttpEventArgs
{
public string Command { get; }
public object Data { get; }
public HttpEventArgs(string command, object data) { Command = command; Data = data; }
}
public delegate void HttpEventHandler(object sender, HttpEventArgs e);
internal class HttpListener {
public event HttpEventHandler? OnRequest;
IWebHost? host;
public void Start()
{
Thread thread = new Thread(() =>
{
Run();
});
thread.Start();
}
public void Stop()
{
if(host!= null)
{
host.StopAsync();
}
}
public void Run()
{
int port = 2023;
host = new WebHostBuilder().UseKestrel((options) => {
options.ListenLocalhost(port);
}).Configure(app => {
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(Environment.CurrentDirectory),
RequestPath = "/static"
});
app.Run(RequestDelegate);
}).Build();
host.Run();
}
private Task RequestDelegate(HttpContext context)
{
try
{
if(context.Request.Method == "POST")
{
string command = context.Request.Path;
string data = context.Request.Form["data"];
OnRequest?.Invoke(this, new HttpEventArgs(command, data));
context.Response.Headers.AccessControlAllowOrigin = "*";
context.Response.WriteAsync(command);
}
return Task.CompletedTask;
}
catch (Exception ex)
{
return Task.FromException(ex);
}
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。