如何中止来自 .NET 的 HTTP 请求?

How to abort an HTTP Request from .NET?

当我使用 fiddler 时,我可以通过右键单击请求并选择中止会话选项来中止 http 请求。我可以从服务器端(I 运行 ASP.NET Web API)确认客户端已有效断开连接。现在我正在尝试模仿 .NET client 的相同行为。

到目前为止,我尝试了 System.Net.Http.HttpClient.CancelPendingRequestsSystem.Net.HttpWebRequest.Abort。但是,无论我尝试过什么,我从 fiddler 那里观察到,尽管我进行了上述调用,请求仍然保持 运行 和 returns 响应。换句话说,这些调用不会引起任何导致服务器检测到断开连接的情况。有没有办法实现我想要的?

我相信 .NET 取消有效,但 Fiddler 继续发出请求。 Fiddler 不仅仅是一个观察者。中间是一个人。它终止您的连接并启动它自己的服务器。

您可以通过发出一些浏览器请求并终止浏览器进程来进行尝试。如果 Fiddler 没有显示任何类型的消息或错误,那么这意味着 Fiddler 只是忽略了已终止的客户端连接。

您也可以使用 Wireshark 对此进行测试。

看来你没有问题。这应该有效。