Asp.net-Web-Api
獲取 HttpActionExecutedContext 結果值
我創建了一個過濾器,它繼承了 asp.net web api 中的 System.Web.Http.Filters.ActionFilterAttribute,並希望訪問 HttpActionExecutedContext 結果對像中的一些數據。
這個對像在什麼階段/什麼時候被填充?正如我在重寫 OnActionExecuted 方法時所看到的那樣,它始終為空?
有任何想法嗎?
編輯:
例如在我的自定義過濾器中:
public override OnActionExecuted(HttpActionExecutedContext context) { //context.Result.Content is always null base.OnActionExecuted(context); }
最終在內容結果上使用了 ReadAsStringAsync。我試圖在實際請求完成之前訪問該屬性。
使用此函式在 web api 中獲取請求正文
private string GetBodyFromRequest(HttpActionExecutedContext context) { string data; using (var stream = context.Request.Content.ReadAsStreamAsync().Result) { if (stream.CanSeek) { stream.Position = 0; } data = context.Request.Content.ReadAsStringAsync().Result; } return data; }