我正在ServiceStack中实现请求和响应的日志记录。我想在我的IRequestLogger.Log()方法中掌握IHttpRequest。
IRequestContext没有像IHttpRequest那样的信息,有没有办法可以传递或访问它。我正在尝试记录请求标头,UserAgent,令牌等。
答案 0 :(得分:1)
IRequestLogger.Log注入了当前的IRequest
。
您可以强制转换为IHttpRequest
以获取HTTP请求,并通过转换IRequest.OriginalRequest
来访问基础ASP.NET或HttpListener请求,例如:
void Log(IRequest request, object requestDto, object response, TimeSpan elapsed)
{
var httpReq = request as IHttpRequest;
var aspReq = request.OriginalRequest as HttpRequestBase;
}