大佬教程收集整理的这篇文章主要介绍了.net – 经过十次连续请求后的HttpWebRequest超时,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经回顾了已经在SO上发布的类似问题,并在我的GetPage例程中实现了推荐的技术,如下所示:
Public Function GetPage(ByVal url As String) As String Dim result As String = String.Empty Dim uri As New Uri(url) Dim sp As servicePoint = servicePointManager.FindservicePoint(uri) sp.ConnectionLimit = 100 Dim request As httpWebrequest = Webrequest.Create(uri) request.KeepAlive = false request.Timeout = 15000 Try Using response As httpWebResponse = DirectCast(request.GetResponse,httpWebResponsE) Using dataStream As Stream = response.GetResponseStream() Using reader As New StreamReader(dataStream) If response.StatusCode <> httpStatusCode.oK Then Throw New Exception("Got response status code: " + response.StatusCodE) End If result = reader.ReadToEnd() End Using End Using response.Close() End Using Catch ex As Exception Dim msg As String = "Error reading page """ & url & """. " & ex.message Logger.Logmessage(msg,LogOutputLevel.Diagnostics) End Try Return result End Function
我错过了什么吗?我没有关闭或处理应该是的对象吗?看起来奇怪的是它总是在连续十次请求之后发生.
笔记:
>在此方法所在的类的构造函数中,我有以下内容:
servicePointManager.DefaultConnectionLimit = 100
>如果我将KeepAlive设置为true,则在五个请求之后开始超时.
>所有请求都针对同一域中的页面.
编辑
我在每个Web请求之间添加了两到七秒之间的延迟,这样我就不会“锤击”该站点或尝试DOS攻击.但是,问题仍然存在.
以上是大佬教程为你收集整理的.net – 经过十次连续请求后的HttpWebRequest超时全部内容,希望文章能够帮你解决.net – 经过十次连续请求后的HttpWebRequest超时所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。