2011-10-08 185 views
1

我正在使用WebClient向一個運行時間很長的API發出請求。但我實際上並不需要知道結果,我只需要啓動流程。WebClient:如何取消長時間運行的HTTP請求?

如果過程成功或失敗,對我而言無關緊要。所以我想在我提出請求後立即放棄連接。

如何刪除Web客戶端的連接?我不想等到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? 

回答

2

您可以使用:client.CancelAsync()

0

我建議您使用DownloadProgressChanged事件代替=>您將確保服務器收到您的請求並開始處理它。

警告:如果不是這種情況,您還需要更新服務器代碼以在啓動過程後立即開始返回信息(HTTP標頭或某些文本)。如果沒有,DownloadProgressChanged將只在處理完成時纔開始接收信息。