2015-04-03 80 views
1

當我使用fiddler時,我可以通過右鍵單擊請求並選擇abort session選項來中止http請求。我可以從服務器端(我運行ASP.NET Web API)確認客戶端已切斷連接。現在我試圖模仿.NET client中的相同行爲。如何中止HTTP的HTTP請求?

到目前爲止,我嘗試的東西,如System.Net.Http.HttpClient.CancelPendingRequestsSystem.Net.HttpWebRequest.Abort。然而,無論我嘗試過,從小提琴手我都觀察到,儘管我正在進行上述調用,但請求仍在運行並返回響應。換句話說,這些調用不會導致導致服務器檢測到斷開連接的任何事情。有沒有辦法實現我想要的?

+0

取消*客戶端*請求並不意味着*服務器*將停止處理它。客戶端將停止等待響應並關閉自己的連接。 – 2015-04-03 10:16:13

+0

@PanagiotisKanavos你錯過了「必然」這個詞。 HTTP服務器_can_檢測到客戶端斷開連接並且_can_可以對其執行操作。 – CodeCaster 2015-04-03 10:38:57

回答

3

我相信.NET取消工作,但提琴手繼續提出請求。提琴手不只是一個觀察者。這是一箇中間的男人。它終止你的連接,並向服務器發起它自己的連接。

您可以嘗試一些瀏覽器請求並終止瀏覽器進程。如果Fiddler沒有顯示任何類型的消息或錯誤,那麼這意味着Fiddler只是忽略了被終止的客戶端連接。

你也可以使用Wireshark測試這個。

所以你似乎沒有問題。這應該工作。

+0

是的,這是我的問題。關閉小提琴手,現在一切正常。 – 2015-04-03 10:31:54