我正在使用 .NET 3.5 上的 ServiceStack 库开发一个 API 服务器(对我来说是一种新体验),旨在由 Windows 窗体厚客户端应用程序访问。当用户单击导致向服务器发出 REST 请求的按钮时,我想显示一个进度条,显示 RPC 调用的进度。
我的服务通常遵循以下模式之一:
- 客户端发送一个 ID 列表,并期望接收一个对象列表,每个 ID 一个对象。在这种情况下,进度百分比可以计算为
(number of objects received so far) / (total number of objects requested)
- 客户端发送一个请求,并期望收到一个未知长度的列表。在服务端,我们检索对象列表(来自缓存、数据库、计算等),对其进行序列化,然后将序列化数据写入 HTTP 响应流。在这种情况下,进度百分比可以估计为
(number of bytes received so far) / (Content-Length of the HTTP response)
在这两种情况下,这些列表都可能很长,因此我希望它们通过网络发送需要相当长的时间。
有没有办法使用 ServiceStack 的 , 或一般的任何子类来完成JsonServiceClient
此XmlServiceClient
任务ServiceClientBase
?如果没有,那么在没有太多额外工作的情况下完成我想要的事情的好方法是什么?我知道我可以从头开始编写自己的 REST 客户端实现,但如果可以的话,我宁愿避免这样做。