0

あるページからhtmlまたはxmlソースを取得する次の関数がありますが、403例外がある場合、コードがselectステートメントに進まないことがわかりました

   Public Function GetPageHTML(ByVal URL As String, _
        Optional ByVal TimeoutSeconds As Integer = 10) _
        As String
        ' Retrieves the HTML from the specified URL,
        ' using a default timeout of 10 seconds
        Dim objRequest As Net.WebRequest
        Dim objResponse As Net.WebResponse
        Dim objStreamReceive As System.IO.Stream
        Dim objEncoding As System.Text.Encoding
        Dim objStreamRead As System.IO.StreamReader


        ' Setup our Web request
        objRequest = Net.WebRequest.Create(URL)
        objRequest.Timeout = TimeoutSeconds * 5000
        ' Retrieve data from request

Try
        objResponse = objRequest.GetResponse 'some times it gives an error server unavailable 503

        Select Case CType(objResponse, Net.HttpWebResponse).StatusCode
            Case Net.HttpStatusCode.RequestTimeout
                Return "BadRequest"
            Case 403
                Return "BadRequest"
            Case Net.HttpStatusCode.GatewayTimeout
                Return "BadRequest"
            Case Net.HttpStatusCode.InternalServerError
                Return "BadRequest"
            Case Net.HttpStatusCode.BadRequest
                Return "BadRequest"
            Case Net.HttpStatusCode.OK

                objStreamReceive = objResponse.GetResponseStream
                objEncoding = System.Text.Encoding.GetEncoding( _
                    "utf-8")

                objStreamRead = New System.IO.StreamReader( _
                    objStreamReceive, objEncoding)
                ' Set function return value

                GetPageHTML = objStreamRead.ReadToEnd()
                ' Check if available, then close response
                If Not objResponse Is Nothing Then
                    objResponse.Close()
                End If
            Case Else
                MsgBox("Case Else")

        End Select
catch
Return ""
End Try
    End Function

どうすればこれを修正できますか?デバッガーはこの行に例外を表示します

objResponse = objRequest.GetResponse 'some times it gives an error server unavailable 503 or 403

そのため、選択したステートメントには移動しません

また、同じ問題で2回目の試行を行うと、エラーがキャッチされず、例外メッセージが表示されません。 ここに画像の説明を入力してください

4

0 に答える 0