Vb.net 无法捕获HttpWebRequest响应上的404错误

Vb.net 无法捕获HttpWebRequest响应上的404错误,vb.net,Vb.net,尝试下面的代码来捕获404错误页面,但似乎不起作用,我的意思是404错误不会显示在响应中。响应仅在文件存在时显示(200 http代码)!!但是,如果文件不存在(404),如下面的示例所示,则不会显示msgbox,并且异常也不会显示任何内容,这就是我在其中插入msgbox的原因 如果您尝试从“index.html”中取出这些“111”并运行它,它将很好地显示200个http代码 使用VS2013,我不知道这是一个bug,还是因为我正在通过一个代理 稍后将在家中检查代理,因为我们正在使用代理服务器

尝试下面的代码来捕获404错误页面,但似乎不起作用,我的意思是404错误不会显示在响应中。响应仅在文件存在时显示(200 http代码)!!但是,如果文件不存在(404),如下面的示例所示,则不会显示msgbox,并且异常也不会显示任何内容,这就是我在其中插入msgbox的原因

如果您尝试从“index.html”中取出这些“111”并运行它,它将很好地显示200个http代码

使用VS2013,我不知道这是一个bug,还是因为我正在通过一个代理

稍后将在家中检查代理,因为我们正在使用代理服务器

有人能帮忙吗

Try
    Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("https://www.cisco.com/c/en/us/support/index111.html")
    Dim response As System.Net.HttpWebResponse = request.GetResponse

    If response.StatusCode = Net.HttpStatusCode.OK Then
        MsgBox("File exist on Server")
        MsgBox(response.StatusCode) '200 HTTP CODE

    'Trying to catch 404 error here
    ElseIf response.StatusCode = Net.HttpStatusCode.NotFound Then
        MsgBox("FILE NOT FOUND ON THE SERVER")
        MsgBox(response.StatusCode)
    Else
        MsgBox("NO FILE on the server")
    End If
Catch ex As Exception

      'Msgbox("Error")

End Try

无论出于何种原因,当请求失败时,
request.GetResponse
将引发异常


异常通过中有一个
响应
对象,您可以在该对象上询问状态代码是什么。在
Catch
块中选中
ex.Response.StatusCode

请求。无论出于何种原因,当请求失败时,GetResponse
将引发异常


异常通过中有一个
响应
对象,您可以在该对象上询问状态代码是什么。在
Catch
块中检查
ex.Response.StatusCode

是否调试了代码,并查看使用无效url得到的响应代码?@ChetanRanpariya这就是整个问题。OP无法获取该状态代码。您是否调试了代码,并查看了使用无效url得到的响应代码?@ChetanRanpariya这就是整个问题所在。OP无法获取该状态代码。我只是将(ex.Message)用作ex.Response.StatusCode throws“Response不是System.Exception的成员。这怎么可能?我的答案早在您的答案之前就发布了。请参阅@alice you need to catch type
WebException
。我只是将(ex.Message)用作ex.Response.StatusCode throws”响应不是System.Exception的成员。这怎么可能?我的答案比你的早发布了很久。请参见@alice,您需要捕获类型
WebException