当HttpWebResponse仍在加载进度时,是否有任何停止代码运行的方法?
例如,我运行此代码,我确定它需要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
谢谢!
答案 0 :(得分:0)
看起来这段代码旨在运行客户端。请记住,从客户端的角度来看,您发送请求并接收响应。响应来自服务器,因此您无法控制它。相反,您可以在响应中中止请求 结果(因此您需要保留对该请求的挂钩才能中止它):
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