如何中止来自 .NET 的 HTTP 请求?
How to abort an HTTP Request from .NET?
当我使用 fiddler 时,我可以通过右键单击请求并选择中止会话选项来中止 http 请求。我可以从服务器端(I 运行 ASP.NET Web API)确认客户端已有效断开连接。现在我正在尝试模仿 .NET client
的相同行为。
到目前为止,我尝试了 System.Net.Http.HttpClient.CancelPendingRequests
或
System.Net.HttpWebRequest.Abort
。但是,无论我尝试过什么,我从 fiddler 那里观察到,尽管我进行了上述调用,请求仍然保持 运行 和 returns 响应。换句话说,这些调用不会引起任何导致服务器检测到断开连接的情况。有没有办法实现我想要的?
我相信 .NET 取消有效,但 Fiddler 继续发出请求。 Fiddler 不仅仅是一个观察者。中间是一个人。它终止您的连接并启动它自己的服务器。
您可以通过发出一些浏览器请求并终止浏览器进程来进行尝试。如果 Fiddler 没有显示任何类型的消息或错误,那么这意味着 Fiddler 只是忽略了已终止的客户端连接。
您也可以使用 Wireshark 对此进行测试。
看来你没有问题。这应该有效。
当我使用 fiddler 时,我可以通过右键单击请求并选择中止会话选项来中止 http 请求。我可以从服务器端(I 运行 ASP.NET Web API)确认客户端已有效断开连接。现在我正在尝试模仿 .NET client
的相同行为。
到目前为止,我尝试了 System.Net.Http.HttpClient.CancelPendingRequests
或
System.Net.HttpWebRequest.Abort
。但是,无论我尝试过什么,我从 fiddler 那里观察到,尽管我进行了上述调用,请求仍然保持 运行 和 returns 响应。换句话说,这些调用不会引起任何导致服务器检测到断开连接的情况。有没有办法实现我想要的?
我相信 .NET 取消有效,但 Fiddler 继续发出请求。 Fiddler 不仅仅是一个观察者。中间是一个人。它终止您的连接并启动它自己的服务器。
您可以通过发出一些浏览器请求并终止浏览器进程来进行尝试。如果 Fiddler 没有显示任何类型的消息或错误,那么这意味着 Fiddler 只是忽略了已终止的客户端连接。
您也可以使用 Wireshark 对此进行测试。
看来你没有问题。这应该有效。