我試圖讀取ServiceStack服務中的原始輸入流。我用IRequiresRequestStream
標記了DTO,並且執行讀取的代碼,但內容始終顯示爲空白。ServiceStack:原始請求流
在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();
}
}
缺少什麼我在這裏?
看起來應該可以工作......你是否有讀取流的RequestFilter?可能需要設置RequestStream.Position = 0. – paaschpa
沒有請求過濾器。 – SAJ14SAJ