Welcome   |   ASP.NET   |   Web Services   |   How Do I...?   |   Class Browser   
  |   Font Size...      

VB\clientwebexception\clientwebexception.vb

'-----------------------------------------------------------------------
'  This file is part of the Microsoft .NET Framework SDK Code Samples.
' 
'  Copyright (C) Microsoft Corporation.  All rights reserved.
' 
'This source code is intended only as a supplement to Microsoft
'Development Tools and/or on-line documentation.  See these other
'materials for detailed information regarding Microsoft code samples.
' 
'THIS CODE AND INFORMATION ARE PROVIDED AS IS WITHOUT WARRANTY OF ANY
'KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
'IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
'PARTICULAR PURPOSE.
'-----------------------------------------------------------------------

Imports System
Imports System.Net
Imports System.IO
Imports System.Text
Imports microsoft.visualbasic

Namespace Microsoft.Samples.QuickStart.HowTo.Net.WebRequests

    NotInheritable Class ClientWebErrorHandler

        Private Sub ClientWebErrorHandler()
        End Sub

        Public Shared Sub Main()
            Dim resolvedUri As Boolean = False
            Dim uriToResolve As String
            Dim responseStream As Stream
            Dim encoding As Encoding
            Dim reader As StreamReader
            Dim buffer(256) As Char

            While (Not resolvedUri)

                Dim response As WebResponse = Nothing
                Try
                    ' Get a uri from the user
                    Console.Write("Please enter the uri to resolve: ")
                    uriToResolve = Console.ReadLine()
                    Console.WriteLine()

                    ' Create the request object
                    Dim request As WebRequest = WebRequest.Create(uriToResolve)
                    request.Credentials = New NetworkCredential("invaliduser", "invalidpassword")

                    ' Create the response object
                    response = request.GetResponse()
                    Console.WriteLine("URI Resolved!")

                    ' Successfully resolved the URI
                    resolvedUri = True

                    responseStream = response.GetResponseStream()
                    encoding = System.Text.Encoding.GetEncoding("utf-8")
                    reader = New StreamReader(responseStream, encoding)

                    Console.WriteLine()
                    Console.WriteLine("Response stream received")
                    Dim count As Integer = reader.Read(buffer, 0, 256)

                    Console.WriteLine("HTML...")
                    Console.WriteLine()
                    Do While count > 0
                        Dim str As String = New String(buffer, 0, count)
                        Console.Write(str)
                        count = reader.Read(buffer, 0, 256)
                    Loop
                    Console.WriteLine("")
                Catch webException As WebException
                    '  If you get to this point, the exception has been caught
                    Console.WriteLine("A WebException has been caught!")

                    '  Write out the Exception message
                    Console.WriteLine(webException.ToString())

                    '  Get the WebException status code
                    If (webException.Status = WebExceptionStatus.ProtocolError) Then
                        '  Write out the WebResponse protocol status
                        Console.WriteLine("Error received from Server")
                    End If
                Catch uriFormatException As UriFormatException
                    '  If you get to this point, the exception has been caught
                    Console.WriteLine("A URIFormatException has been caught!")
                    '  Write out the Exception message
                    Console.WriteLine(uriFormatException.ToString())
                Finally
                    If response IsNot Nothing Then
                        response.Close()
                    End If
                End Try
            End While

            Console.WriteLine()
            Console.WriteLine("Press Enter to continue...")
            Console.ReadLine()
        End Sub
    End Class
End Namespace