我试图弄清楚如何同时将从服务器接收到的数据写入反序列化器以及将来用作重复请求缓存的文件。我正在寻找一种解决方案,以免从服务器读取整个响应,也不会手动逐个缓冲区复制它。
这是我可怜的尝试,评论了对我不起作用的东西。一切都适用于注释行,但如果未注释,反序列化器会崩溃,原因很明显。
private static async Task<T> HttpAPIRequest<T>(string url, string path)
{
using HttpResponseMessage response = await client.GetAsync(url, HttpCompletionOption.ResponseHeadersRead).ConfigureAwait(false);
response.EnsureSuccessStatusCode();
using Stream responseStream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false);
//using FileStream fileStream = File.Create(path);
//Task fileTask = responseStream.CopyToAsync(fileStream);
ValueTask<T> jsonTask = JsonSerializer.DeserializeAsync<T>(responseStream);
//await fileTask;
return await jsonTask;
}
但是怎么做才对呢?
我现在有一个工作代码,但是我首先将响应完全加载到byte[]一个数组中,然后将该数组发送到反序列化器和文件。
这种方式怎么样:
在等待答案的过程中,进展并没有停滞不前,我仍然设法破解了这个问题。
TK的本质:
这个决定来自他们没想到的地方
IEnumerator:.这就是它现在的使用方式。
如果您对完成什么有任何建议,或者我不想在哪里做对,请写在评论中。感谢所有试图提供帮助的人。