2012-08-14 2 views
0

Я использую этот маленький кусочек кода для доступа к удаленной Ури:проксите ошибку запрашивающего HTTPS

Uri uri = "http://www.myurl.com"; 
WebRequest wreq = WebRequest.Create(uri); 
((HttpWebRequest)wreq).UserAgent = "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.75 Safari/537.1"; 
wreq.Proxy = WebRequest.DefaultWebProxy; 

Это прекрасно работает для всех «HTTP» Урь. Однако при переключении на следующий тип Uri (https) я получаю прокси-ошибку 407, запрашивающую аутентификацию (журнал Exception сообщает, что учетные данные плохие). У вас есть представление о том, как я могу справиться с этим?

Uri uri = "https://www.myurl.com"; 
WebRequest wreq = WebRequest.Create(uri); 
((HttpWebRequest)wreq).UserAgent = "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.75 Safari/537.1"; 
wreq.Proxy = WebRequest.DefaultWebProxy; 

С наилучшими пожеланиями,

Al_th

+0

Вы используете общесистемные настройки для прокси-сервера. Проверьте настройки прокси-сервера IE или параметры Интернета с панели управления (при условии, что вы используете Windows) и посмотрите, можете ли вы получить доступ к сайту https://www.myurl.com из IE. Может быть, ваша настройка прокси-сервера https плохая? – jpe

+0

С панели управления у меня установлен IP-адрес прокси-сервера, а флажок «использовать один и тот же прокси-сервер для всех протоколов». Я могу получить доступ к https://www.myurl.com без каких-либо проблем с IE, и то же самое для chrome (который никак не был настроен системным администратором, потому что я «загрузил» его после выхода на компьютер и не нуждался в какой-либо установке, поэтому он обошел политику безопасности установки в том месте, где я работаю. Я предполагаю, что учетные данные хранятся на компьютере, но я думал, что DefaultWebProxy использует ту же конфигурацию, что и chrome/IE: x –

ответ

1

Попробуйте

private string GetPageSource(string url) 
{ 
    string htmlSource = string.Empty; 
    try 
    { 
     System.Net.WebProxy myProxy = new System.Net.WebProxy("Proxy IP", 8080); 
     using (System.Net.WebClient client = new System.Net.WebClient()) 
     { 
      client.Proxy = myProxy; 
      client.Proxy.Credentials = new System.Net.NetworkCredential("username", "password"); 
      htmlSource = client.DownloadString(url); 
     } 
    } 
    catch (WebException ex) 
    { 
     // log any exceptions 
    } 
    return htmlSource; 
} 
+0

Какое имя пользователя/пароль должен использовать? Моя учетная запись для входа в систему? Должен ли быть включен в DefaultWebProxy? –

+0

Получаете ли вы окно для входа в систему при просмотре на https://yoururl.com, если это так, то вы должны добавить эти учетные данные в качестве логина и пропустите, по крайней мере, если вы их знаете – JohnnBlade

+0

Попробуйте раскомментировать // строки, начинающиеся с client.Proxy, и снова попробуйте ваш https-url и посмотрите, какой результат вы получите – JohnnBlade

Смежные вопросы