gpt4 book ai didi

c# - 取消 c# httpClient GetStreamAsync 调用

转载 作者:太空狗 更新时间:2023-10-29 22:36:09 26 4
gpt4 key购买 nike

我需要在旧的 c# 项目中添加取消 http 请求的可能性。

项目使用HttpClient::GetStreamAsync它似乎不支持取消 token 。

可以取消 GetStreamAsync 调用吗?我还有哪些其他可能性?

最佳答案

2022 更新:我保留了指向 MSDN 文章的链接,因为在我写这篇文章的时候,该链接仍然有效。但是,该链接较旧,可能最终会失效,而且我注意到我在 2017 年看到的代码格式今天已不复存在。此外,根据我的答案下方的评论,我对我的答案内容进行了轻微编辑,删除了一个无用的句子以及一个毫无意义的斜体字。

原始答案:我从 2012 年撰写的 MSDN 博客文章中发现了一个替代解决方案。它可能对您有所帮助。作者使用的是GetStringAsync,但原理同样适用于GetStreamAsync。文章:Await HttpClient.GetStringAsync() and cancellation .

在 MSDN 文章中,作者使用的是可以采用取消参数的 GetAsync(...)。 Nathan 的问题的一个简单解决方案可能是这样的......

CancellationTokenSource cancellationSource = new CancellationTokenSource();
CancellationToken cancellationToken = cancellationSource.Token;

Uri uri = new Uri("some valid web address");
HttpClient client = new HttpClient();
await client.GetAsync(uri, cancellationToken);

// In another thread, you can request a cancellation.
cancellationSource.Cancel();

请注意,取消是在 CancellationTokenSource 对象上进行的,不是 CancellationToken 对象。

关于c# - 取消 c# httpClient GetStreamAsync 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41209188/

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