SGGL_JT/SUBQHSE/WebAPI/Log/CustomMessageHandler.cs

43 lines
2.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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<HttpResponseMessage> 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<HttpResponseMessage>((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;
});
}
}
}