使用ServiceStack检查请求标头

Ste*_*ten 6 asp.net servicestack

检查服务端点的请求标头的最佳方法是什么?

ContactService : Service
Run Code Online (Sandbox Code Playgroud)

阅读此https://github.com/ServiceStack/ServiceStack/wiki/Access-HTTP-specific-features-in-services我很好奇获得接口的首选方式.

谢谢你,斯蒂芬

myt*_*thz 7

在ServiceStack 服务中,您可以使用以下命令访问IHttpRequestIHttpResponse对象:

public class ContactService : Service 
{
    public object Get(Contact request)
    {
        var headerValue = base.Request.Headers[headerKey];

        //or the same thing via a more abstract (and easier to Mock):
        var headerValue = base.RequestContext.GetHeader(headerKey);
    }
}
Run Code Online (Sandbox Code Playgroud)

IHttpRequest是底层ASP.NET HttpRequest或HttpListenerRequest的包装器(取决于您是在ASP.NET上托管还是自托管HttpListener).因此,如果您在ASP.NET中运行,您可以使用以下内容获取底层ASP.NET HttpRequest:

var aspnetRequest = (HttpRequest)base.Request.OriginalRequest;
var headerValue = aspnetRequest.Headers[headerKey]; 
Run Code Online (Sandbox Code Playgroud)