1

我正在使用 WebClient 向一个运行时间很长的 API 发出请求。但我实际上并不需要知道结果,我只需要启动过程。

这个过程是成功还是失败对我来说并不重要。所以我想在我提出请求后立即断开连接。

如何断开 webclient 的连接?我不想等待 30 - 60 秒的响应:

var client = new WebClient();
string url = "http://example.com/SomeVeryLongRunningProcess/parameter";
client.BeginDownloadString(uri);
client.DropConnection; // how do I drop the connection before the response is received?
4

3 回答 3

2

你可以使用:client.CancelAsync()

于 2011-10-08T23:51:41.797 回答
2

CancelAsync()应该做的伎俩。

于 2011-10-08T23:52:55.257 回答
0

我建议您改用DownloadProgressChanged事件 => 您将确保服务器收到您的请求并开始处理它。

警告:如果不是这种情况,您还需要更新服务器代码以在启动进程后立即开始返回信息(HTTP 标头或某些文本)。如果没有,DownloadProgressChanged 将仅在处理完成后开始接收信息。

于 2013-10-25T15:18:37.583 回答