public async Task Invoke(HttpContext context) { if (IsRequestMatch(context)) { try { byte[] responseBytes = _executor.HandleRequest(context.Request.Body); context.Response.StatusCode = StatusCodes.Status200OK; context.Response.ContentType = "text/html;charset=UTF-8"; await context.Response.Body.WriteAsync(responseBytes, 0, responseBytes.Length); } catch (Exception ex) { _logger.LogError(ex, "XxlJobExecutorMiddleware handle request error."); throw; } } else { await _next(context); } }
protected override Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { try { var inputStream = request.Content.ReadAsStreamAsync().Result; byte[] responseBytes = _executor.HandleRequest(inputStream); var response = request.CreateResponse(HttpStatusCode.OK); response.Content = new ByteArrayContent(responseBytes); response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html") { CharSet = "UTF-8" }; return(Task.FromResult(response)); } catch (Exception ex) { _logger.LogError(ex, "XxlJobExecutorHandler handle request error."); var response = request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex); return(Task.FromResult(response)); } }