Ich habe ein Web-API-Projekt, und ich habe einen benutzerdefinierten Ausnahmefilter hinzugefügt. In diesem Ausnahmefilter möchte ich die JSON-Daten protokollieren, die der Client auf dem Server veröffentlicht hat. Ich habe jedoch keinen Zugang dazu. Kann mir jemand helfen, wo ich in den Objekten zugreifen kann?Web-API-Fehlerprotokollierung
actionExecutedContext.ActionContext.Request.Content scheint leer zu sein, aber in meinen simulierten Szenarien weiß ich, dass gültige Daten gepostet wurden.
public class MobileAppExceptionFilterAttribute : ExceptionFilterAttribute
{
public override async void OnException(HttpActionExecutedContext actionExecutedContext)
{
var sb = new StringBuilder();
sb.Append($"Url:{actionExecutedContext.Request.RequestUri}");
foreach(var header in actionExecutedContext.Request.Headers)
{
sb.Append($"Header:{header.Key} - {String.Join(", ", header.Value)}");
}...
}
}
Überprüfen Sie die Anfrage 'Request.Method' für POST und dann prüfen, die' Request.Content' – Nkosi
Wenn Sie sagen, 'scheint leer zu sein. Was bedeutet das? Die Eigenschaft ist "null"? – CodingGorilla
Nun, wenn ich eine "Quick-Uhr" tun obwohl sagt, es hat: {Content-Length: 3156 Content-Type: application/json } das ist es tatsächlichen Inhalt ist: \t \t actionExecutedContext.Request.Content.ReadAsStringAsync() \t Id = 382, Status = RanToCompletion, Methode = "{null}", Ergebnis = "" \t System.Threading.Tasks.Task –