ServiceStack:原始请求流

本文关键字:请求 原始 ServiceStack | 更新日期: 2023-09-27 18:09:02

我试图读取ServiceStack服务中的原始输入流。我已将DTO标记为IRequiresRequestStream,并执行要读取的代码,但内容始终显示为空白。

在IE9中使用调试模式,我可以看到原始的HttpRequest在POST中包含文本。

下面是我的代码,从一个最小的测试服务,仅用于显示读取的内容和查询:

[Route("/qtest")]
public class QueryTestRequest : IReturn<string>, IRequiresRequestStream
{
    public Stream RequestStream { get; set; }
}
public class QueryTestService : Service
{
    public string Any(QueryTestRequest request)
    {
        var r = new StringBuilder(); 
        r.Append("<p>This is the query test service:");
        r.AppendFormat("<p>Parameter value={0}", base.Request.QueryString["value"]);
        var postStream = new StreamReader(request.RequestStream);
        var postContent = postStream.ReadToEnd();           
        r.AppendFormat("<p>Raw Content={0}", postContent);
        return r.ToString();
    }
}

我在这里错过了什么?

ServiceStack:原始请求流

是的,我也觉得很奇怪,但也许是我不理解HttpRequestStream的本质。

无论如何……我使用:

获取文件
var stream = Request.Files[0].InputStream;

然后你可以处理这个流。

似乎可以上传多个文件,但我猜很难将其封装到rest框架中。