将HttpRequestMessage转换为HttpRequest

Avi*_*sho 16 asp.net-mvc httprequest

我正在将ASP.NET Web应用程序转换为MVC Web Api项目.我的一种方法需要HttpRequest上课.但是,Web Api控制器只保存HttpRequestMessage(this.Request)对象.你知道我怎么转换HttpRequestMessageHttpRequest

Bor*_*itz 23

您可能不需要从HttpRequestMessage转换.还有另一种方式:

var context = new HttpContextWrapper(HttpContext.Current);
HttpRequestBase request = context.Request;
Run Code Online (Sandbox Code Playgroud)

  • System.Web.HttpContext.Current.Request (3认同)
  • 这似乎非常像欺骗我,但如果我想编写可以从ASP.NET Web API控制器以及ASP.NET MVC控制器调用的函数,我就不得不这样做.对于我的生活,我不明白web API不能只是建立在MVC之上(因此ApiController可能是普通MVC控制器的子类).相反,如果你想一起使用MVC和API,你必须在两个平行但不兼容的世界之间导航,每个世界都有相同的概念. (3认同)
  • 我在[另一个答案](/sf/ask/669612261/#10998580)下的评论中看到你不应该使用系统Web API 项目中的 .Web.HttpContext.Current - 您可以使用 `(HttpContextWrapper)Request.Properties["MS_HttpContext"]` (2认同)