gpt4 book ai didi

c# - HttpClient,一次调用产生多个异步结果

转载 作者:太空宇宙 更新时间:2023-11-03 16:03:41 28 4
gpt4 key购买 nike

我被困住了,几天来一直在努力解决这个问题,希望能有所帮助。

我正在调用一个 http 服务,该服务在执行时将启动一个进程,该进程将发回多个状态消息。数据以 Json 字符串的形式返回,然后反序列化为一个对象。

我尝试创建的代码已经作为 COM 对象存在于 NPAPI 浏览器插件中,但是由于 Google 最近决定终止此类插件,我被迫寻找一种获取数据的新方法。

到目前为止,我已经用我的工作代码做出了惊人的瑞士奶酪,并且能够得到第一个结果,仅此而已。这是我工作的一个片段,基本前提是服务被称为异步,然后循环结果直到我得到最终状态结果。不幸的是,我知道这是不对的,因为当我进行第二次迭代时出现连接终止错误。

var httpClient = new HttpClient();

await httpClient.GetAsync(url).ContinueWith(
(task) =>
{
do
{
var response = task.Result;

var data = response.Content.ReadAsStringAsync().ContinueWith(
(readTask) =>
{
var data2 = readTask.Result;

foo++;
});
}while (foo < 5);
});

有人有什么建议吗?感谢您的帮助!

编辑

根据 svick 的要求,这里有更多信息。正如我所说,正在执行的代码返回多个状态消息。所以我可能会收到 0% 完成、5%、20%、25% 等一直到 100% 的消息。我想要做的是捕获所有返回的消息,直到我收到消息说状态为 100% 完成。

我也试过使用 ReadAsStringAsync 方法,它只返回第一条状态消息,然后关闭连接。

再次感谢!

更新好吧,事实证明我一直在做这一切都是错误的。显然,服务中内置了一个结果调用,我可以查询它来获取我想要的数据。我想我错过了架构 session 的那一部分。

感谢所有评论或查看此内容的人!

最佳答案

解决方案是对我不知道存在的服务使用结果调用。我不需要弄清楚如何做上面描述的事情。

关于c# - HttpClient,一次调用产生多个异步结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20309901/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com