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();
}
}
我在这里错过了什么?
是的,我也觉得很奇怪,但也许是我不理解HttpRequestStream的本质。
无论如何……我使用:
获取文件var stream = Request.Files[0].InputStream;
然后你可以处理这个流。
似乎可以上传多个文件,但我猜很难将其封装到rest框架中。