我正在开发一个Xamarin应用程序。我还处于非常基础的水平阶段,之前使用过Nativescript和一些Native Android。
我有一个执行长时间操作的Express服务器。在此期间,Xamarin客户端将等待并显示旋转图标。
在服务器上,我已经计算了作业的百分比进度,并希望每次更改时将其发送到客户端,以便将旋转图标替换为进度条。
然而,在服务器上,任务已经通过response.write('10');
完成,其中数字10表示完成的"10%"。
现在是困难的部分。我该如何从流中读取这个10?目前它作为JSON响应工作,因为它等待整个响应过来。
Xamarin客户端HTTP GET:
// Gets weather data from the passed URL.
async Task<JsonValue> DownloadSong(string url)
{
// Create an HTTP web request using the URL:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url));
request.ContentType = "application/json";
request.Method = "GET";
// Send the request to the server and wait for the response:
using (WebResponse response = await request.GetResponseAsync())
{
// Get a stream representation of the HTTP web response:
using (System.IO.Stream stream = response.GetResponseStream())
{
// Use this stream to build a JSON document object:
JsonValue jsonDoc = await Task.Run(() => JsonValue.Load(stream));
// Return the JSON document:
return jsonDoc;
}
}
}
服务器会在作业进度更改时向响应中写入内容,发送包含百分比值的普通字符串。在作业结束时,它将写入一个最终字符串,该字符串将是一个 Base64(非常长的)字符串。然后响应将被关闭。
有人能指导我如何更改该脚本以便读取服务器发送的每个数据块吗?
{data: "base64string-value"}
。 - Caius