using BLL; using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Threading; using System.Threading.Tasks; using System.Web; namespace WebAPI.Log { public class CustomMessageHandler : DelegatingHandler { protected override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { var requsestHeader = HttpContext.Current.Request.Headers.ToString(); var token = HttpContext.Current.Request.Headers["token"]; var username=BLL.UserService.GetUserNameByUserId(token); //return base.SendAsync(request, cancellationToken); //记录请求内容 if (request.Content != null) { //string msg = $"Request | Request Method: {request.Method},Request Uri: {request.RequestUri.AbsoluteUri}, Request Content: {request.Content.ReadAsStringAsync().Result}"; APICommonService.SaveSysHttpLog(username,request.RequestUri.AbsoluteUri, "Header :" + requsestHeader+"| Body :"+ request.Content.ReadAsStringAsync().Result, "Request|" + request.Method.ToString()); //LoggerHelper.Info(msg); } //发送HTTP请求到内部处理程序,在异步处理完成后记录相应内容 return base.SendAsync(request, cancellationToken).ContinueWith((task) => { var ResponseHeader = task.Result.Headers.ToString(); string result = task.Result.Content == null ? "Bad Request" : task.Result.Content.ReadAsStringAsync().Result; // string msg = $"Response | Request Method:{request.Method},Request Uri: {request.RequestUri.AbsoluteUri}, Response Content: {result}"; APICommonService.SaveSysHttpLog(username,request.RequestUri.AbsoluteUri, "Header :" + ResponseHeader + "| Body :" + result, "Response|" + request.Method.ToString()); // 记录响应内容 /// LoggerHelper.Info(msg); return task.Result; }); } } }