private async Task HandleRequest(HttpContext context, PathString subPath) { context.Response.ContentType = "application/json; charset=utf-8"; // token 检查 if (!await ValidToken(context)) { context.Response.StatusCode = StatusCodes.Status401Unauthorized; await context.Response.WriteAsync(ReturnT.Failed("401 Unauthorized").SerializeObject()); return; } context.Response.StatusCode = StatusCodes.Status200OK; var subUrl = subPath.Value.EnsureStartSlash(); var route = _routeTable.FindByPattern(subUrl); if (route != null) { var controller = context.RequestServices.GetRequiredService(route.TypeController) as IJobController; if (controller != null) { try { var response = await controller.ActionAsync(context); if (response != null) { await context.Response.WriteAsync(response.ExecuteResult(context), Encoding.UTF8); return; } } catch (Exception e) { _logger.LogError(e, "请求异常"); await context.Response.WriteAsync(ReturnT.Failed("请求异常").SerializeObject()); return; } } } context.Response.StatusCode = StatusCodes.Status404NotFound; await context.Response.WriteAsync(ReturnT.Failed("404 NotFound").SerializeObject()); }