.NET: Eccezione Errore del server remoto 407 richiesta autenticazione proxy
Se all’interno di un applicativo .NET occorre connettersi ad un server web per ottenere dei dati tramite http ad esempio leggere il contenuto di una pagina web o eseguire chiamate verso un URL può accadere che se l’applicativo viene eseguito su un client che fa uso di un proxy con autenticazione integrata di Windows si riceva l’eccezione “Errore del server remoto (407) Richiesta autenticazione proxy” se non viene gestita correttamente l’autenticazione verso il proxy.
Per risolvere il problema occorre impostare le credenziali del proxy al valore System.Net.CredentialCache.DefaultCredentials.
Di seguito un esempio utilizzando l’oggetto System.Net.WebClient:
Try
Dim url = “http://www.domain.ext“
Using wc = New System.Net.WebClient()
wc.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials
Dim request = wc.DownloadString(url)
MessageBox.Show(request)
End Using
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Mentre di seguito un esempio utilizzando l’oggetto System.Net.WebRequest:
Try
Dim url = “http://www.domain.ext“
Dim wr = DirectCast(System.Net.WebRequest.Create(url), System.Net.HttpWebRequest)
wr.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials
Using r = wr.GetResponse()
Using rs = r.GetResponseStream()
Using s = New System.IO.StreamReader(rs, True)
Dim data = s.ReadToEnd()
MessageBox.Show(data)
End Using
End Using
End Using
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Per ulteriori informazioni si veda anche HttpWebRequest WebExcepton: The remote server returned an error: (407) Proxy Authentication Required.