我正在尝试在我的ApiController派生类中访问Request属性。但在ExecuteAsync方法中,Request为null。在回答你的问题之前,我已经看到了其他问题:
- 我没有通过调用构造函数来初始化控制器,它是来自外部设备的常规HTTP POST API调用。 - 我已经尝试在本地使用Fiddler进行同样的请求,行为也相同。 - 我没有进行单元测试。 - 在执行ExecuteAsync方法之前,我的请求会经过一个委托处理程序,在该处理程序中,我的请求对象存在(我甚至添加了一些属性而没有任何问题)。 - 在委托处理程序的最后一行,我调用return await base.SendAsync(request, cancellationToken);没有问题,request存在。 - 就在API控制器之后,在HttpContext.Current.Request中Request没有问题,并且可以访问。 - 在API控制器中,RequestContext不为空并且可以正常访问。 - 在同一行中,Request为null。
为什么会发生这种情况呢?我使用的是Web API 2.2(如果相关的话还有MVC 5)。
- 我没有通过调用构造函数来初始化控制器,它是来自外部设备的常规HTTP POST API调用。 - 我已经尝试在本地使用Fiddler进行同样的请求,行为也相同。 - 我没有进行单元测试。 - 在执行ExecuteAsync方法之前,我的请求会经过一个委托处理程序,在该处理程序中,我的请求对象存在(我甚至添加了一些属性而没有任何问题)。 - 在委托处理程序的最后一行,我调用return await base.SendAsync(request, cancellationToken);没有问题,request存在。 - 就在API控制器之后,在HttpContext.Current.Request中Request没有问题,并且可以访问。 - 在API控制器中,RequestContext不为空并且可以正常访问。 - 在同一行中,Request为null。
为什么会发生这种情况呢?我使用的是Web API 2.2(如果相关的话还有MVC 5)。