написал небольшой код, загружающий XML из сети. Гуру, пожалуйста, просветите! Надо чтобы работала по-умолчанию с прокси и без и спрашивала пользовательские настройки(пароль порт и проч..) в крайнем случае В чем отличие DefaultProxy от SystemProxy и кого из них достаточно, чтобы при отсутствии proxy в сети программа работала. Можно ли один их них использовать и при NoProxy?
2. request.Credentials = CredentialCache.DefaultCredentials - это авторизация к запрашиваемому серверу? (имя/пароль) как их вводить один раз при работе программы? Что такое дефолтные значения.
| Код |
Private Enum eUseProxy NoProxy = 0 DefaultProxy = 1 SystemProxy = 2 UseProxy = 3 End Enum
Private Function URl2XML(ByVal URL As String, ByVal UseProxy As eUseProxy, ByVal PS As ProxySettings) As XmlDocument Dim Doc As XmlDocument = New XmlDocument
Dim request As HttpWebRequest = WebRequest.Create(URL) '("http://10.1.4.12/Test/XML/DemoMap.xml")
Dim pWebProxy As IWebProxy = Nothing Select Case UseProxy Case eUseProxy.DefaultProxy pWebProxy = WebRequest.DefaultWebProxy pWebProxy.Credentials = CredentialCache.DefaultCredentials Case eUseProxy.SystemProxy pWebProxy = WebRequest.GetSystemWebProxy pWebProxy.Credentials = CredentialCache.DefaultCredentials Case eUseProxy.UseProxy pWebProxy = New WebProxy(PS.Host, PS.Port) pWebProxy.Credentials = New NetworkCredential(PS.User, PS.Pass, PS.Domain) End Select
' может статус NoProxy вообще можно не использовать? А заменить его на Дефолт или Систем? В этом вопрос. If UseProxy <> eUseProxy.NoProxy Then request.Proxy = pWebProxy End If
request.Credentials = CredentialCache.DefaultCredentials
' Get the response. Dim response As HttpWebResponse Try response = CType(request.GetResponse(), HttpWebResponse) Catch ex As Exception MsgBox("Не удается обновить список" _ & vbNewLine & "Ошибка:" & vbNewLine & ex.Message) Return Nothing End Try
If response.StatusCode = HttpStatusCode.OK Then ' Get the stream containing content returned by the server. Try Dim pStream As Stream = response.GetResponseStream() Doc.Load(pStream) pStream.Close()
Catch ex As Exception MsgBox(ex.Message) End Try
Else MsgBox("не удается обновить список" _ & vbNewLine & "Запрос по адресу " & URL _ & vbNewLine & "возвратил статус: " & response.StatusDescription) End If response.Close()
Return Doc
End Function
|
|