如何在C#中获取请求

时间:2013-11-26 19:11:47

标签: c# web-services rest servicestack

我正在向Restful Webservice发布一些数据。 Web服务是使用服务堆栈创建的。我想查看进来的整个请求(将其写入文件),但我无法弄清楚如何访问它。我想查看所有标题和正文以及与POST请求相关的任何其他内容。

有没有人对如何访问此内容有任何想法?

2 个答案:

答案 0 :(得分:1)

如果您正在寻找内置解决方案,请考虑使用Request Logger。它默认提供内存中的记录器,但您可以继承IRequestLogger并提供自己的记录器。您还可以通过查看其code来查看内存中记录器如何访问请求。即使您推出自己的解决方案,您仍然可以重新使用InMemoryRollingRequestLogger中的代码。

答案 1 :(得分:1)

我能够解决我的问题。你需要做的就是为你的DTO使用这样的东西:

public class RestServiceRequest : IRequiresRequestStream
{


    public Stream stream;
    Stream IRequiresRequestStream.RequestStream
    {
        get
        {
            return stream;
        }
        set
        {
            stream = value;
        }
    }
}

然后您可以像这样访问服务中的原始主体:

Request.GetRawBody();