【问题标题】:How to obtain HttpRequestMessage outside of controller如何在控制器之外获取 HttpRequestMessage
【发布时间】:2016-11-11 00:48:32
【问题描述】:

我有一个 Web API v2 控制器,它可以调用同一项目中的服务的方法。该服务使用 UrlHelper 类来组合一个 URL,但是 UrlHelper 类需要 HttpRequestMessage 才能构建正确的 URL。

如何从 API 控制器外部的类(我的服务)中获取 HttpRequestMessage?我可以将HttpRequestMessage 传递给服务方法吗?是否有另一种从全局上下文访问的方法?

我正在使用自托管环境 (OWIN)。

【问题讨论】:

  • 静态是个坏主意 - 你应该传递 HttpRequestMessage 对象,这没有什么问题。
  • 知道如何从控制器中获取“HttpRequestMessage”吗?
  • 有一个(不是很好,但可能的)方法,见SOA

标签: asp.net-web-api2 httprequest owin


【解决方案1】:
public class FooController : ApiController
{
    public IHttpActionResult BarAction()
    {
        UrlHelper urlHelper = GetUrlHelperFromWhereever();
        urlHelper.DoSomething( this.Request );
    }

this.Request 是 HttpRequestMessage:https://msdn.microsoft.com/en-us/library/system.web.http.apicontroller.request(v=vs.118).aspx#P:System.Web.Http.ApiController.Request

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多