VB.NET - 中止从HttpWebRequest获得响应
问题描述:
是否有任何方法停止代码运行时HttpWebResponse仍在加载进度?VB.NET - 中止从HttpWebRequest获得响应
比如我在运行此代码,我相信它会需要10秒,得到响应:
Dim urlAddress As String = "https://google.com"
Dim request As HttpWebRequest = DirectCast(WebRequest.Create(urlAddress), HttpWebRequest)
Dim response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
而现在,虽然要求越来越响应......为例,在第二个4我会按停止按钮,这将中止得到响应,它会弹出一个MessageBox。
Private Sub btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn.Click
HttpWebResponseName.Abort()
MessageBox.Show("Done!")
End Sub
谢谢!
答
它看起来像这个代码旨在运行客户端。请记住,从客户角度来看,您发送请求并接收响应。响应来自服务器,所以你无法控制它。相反,你可以中止要求,在响应结果(所以你需要以一个钩保持这一请求中止吧):
Private _activeRequest As HttpWebRequest
'... other member-level code here
然后,你的代码,将创建请求可以被更新为:
Dim urlAddress As String = "https://google.com"
_activeRequest = DirectCast(WebRequest.Create(urlAddress), HttpWebRequest)
Dim response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
这将使您的单击事件的方法是这样的:
Private Sub btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn.Click
_activeRequest.Abort()
MessageBox.Show("Done!")
End Sub
我已经试过这个了,但是HttpWebResponse仍然会等到它会实际得到响应,否则超时将会到达,所以即使请求被终止,代码仍然会运行。所以这并没有太大的帮助,我试图阻止与响应和请求同时发生的任何事情,然后做其他事情。 – Mava