WebClient:如何取消长时间运行的HTTP请求?

时间:2011-10-08 23:42:04

标签: c# webclient httpconnection

我正在使用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?

3 个答案:

答案 0 :(得分:2)

您可以使用:client.CancelAsync()

答案 1 :(得分:2)

CancelAsync()应该可以做到这一点。

答案 2 :(得分:0)

我建议您使用DownloadProgressChanged event而不是=>您将确保服务器收到您的请求并开始对其进行处理。

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