【问题标题】:Prevent errors when doing a Webrequest in VB.Net在 VB.Net 中执行 Webrequest 时防止错误
【发布时间】:2010-12-26 15:03:06
【问题描述】:

我使用以下函数收到三个错误:

Private Sub readWebpage(ByVal url As String)
    Try
        Dim req As System.Net.WebRequest = System.Net.WebRequest.Create(url)
        Dim resp As System.Net.WebResponse = req.GetResponse
        If Not resp.ContentType.Contains("text/html") And Not resp.ContentType.Contains("application/xhtml+xml") Then Exit Sub
        Using Str As System.IO.Stream = resp.GetResponseStream
            Using srRead As System.IO.StreamReader = New System.IO.StreamReader(Str)
                parseHtml(srRead.ReadToEnd, url)
            End Using
        End Using
    Catch ex As Exception
        Debug.Print(ex.Message)
        Debug.Print(url)
        MsgBox(ex.Message, MsgBoxStyle.Critical, "Unable to download content from: " & url)
    End Try
End Sub

远程服务器返回错误: (500) 内部服务器错误。

服务器提交了一个协议 违反。 Section=ResponseStatusLine

无法解析远程名称: 'dmoz.orgsearch'

如何防止这些错误发生?

【问题讨论】:

    标签: vb.net error-handling webrequest webresponse


    【解决方案1】:

    您无法防止远程错误。你能做到的最好的事情就是按照你现在的方式捕获异常。

    不过,我建议您使用的网址不正确 - dmoz.orgsearch 不存在。

    这应该是:http://www.dmoz.org/search?q=myquery

    如果您使用的网址格式不正确,您将无能为力。

    【讨论】:

    • 我在类似爬虫的应用程序中使用代码(不完全是,但足够接近:P)。所以它在某个地方找到了指向dmoz.orgsearch 的链接。是否正确导致它动态找到它。
    • @PeeHaa - 我明白这一点。但是,如果不发出请求并获得异常,您将不会知道它的格式不正确。
    猜你喜欢
    • 2014-11-29
    • 2011-05-30
    • 2019-04-21
    • 1970-01-01
    • 1970-01-01
    • 2012-12-10
    • 2020-04-04
    • 2014-07-23
    • 2019-05-27
    相关资源
    最近更新 更多