我使用WCF编写了小型REST Web服务。这些Web服务将作为其他更专业的Web服务的外观。
所以它看起来像: Java App(客户端)< - >我的休息WCF Web服务< - > External_Web_Services
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "/GetListOfRecordByRootId/{userid}/{rootId}")]
List<RecordDTO> GetListOfRecordByRootId(string userid, string rootId);
但它以这种方式起作用:
public List<TimeSeriesDto> GetListOfTimeseriesByDataSetId(string guid, string dataSetId, string numberOfSeries)
{
Var client = this.OpenToExternalWebservice();
return client.GetDataByRootId.ToList();
}
OpenToExternalWebservice打开与Web服务的连接。但我遇到了一个严重的问题 - &gt;数据量。 事实证明,外部Web服务非常缓慢且有限。唯一的结果是巨大的。 - 我收到了超过200MB的结果。
问题:是否可以通过流以chuncked方式返回数据? 让我们举一个小例子:
DataAtRoot有100 000条记录;
步骤1)我从外部Web服务下载前1000条记录
步骤2)收到后我将它们转换为:List。然后我将它打包到json usign DataContactJsonSerializer。
步骤3)将它们转换为Json之后我会通过流发送它,但我不想关闭连接。
步骤4)删除我发出的旧1000记录。
步骤5)返回步骤1(获取下一个1000条记录)
所以我的梦想是通过流发送许多记录列表:
ONE STREAM我将在收到下一部分数据后放置:
List<Record> Row Number 0-999
List<Record> Row Number 1000-1999
List<Record> Row Number 2000-2999
List<Record> Row Number 3000-3999
...
有可能吗?或许你有另一种解决方案吗?
请帮帮我。感谢您的任何答案