Ошибка аутентификации прокси - PullRequest
3 голосов
/ 22 ноября 2011
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create("https://www.example.com");
NetworkCredential nc = new NetworkCredential("myname", "mypass");
WebProxy myproxy = new WebProxy("192.168.1.1:8080", false);
myHttpWebRequest.Proxy = myproxy;
myHttpWebRequest.Proxy = WebRequest.DefaultWebProxy;
myHttpWebRequest.Method = "GET";

HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
MessageBox.Show("Ok");

Я использую этот код для связи с веб-сайтом (настольное приложение C # .net).Но у меня появляется это сообщение об ошибке:

Удаленный сервер возвратил ошибку: (407) Требуется проверка подлинности прокси.

Как я могу это исправить?

1 Ответ

2 голосов
/ 22 ноября 2011

В настоящее время вы не используете учетные данные в прокси.Вот пример , адаптированный из MSDN, как использовать NetworkCredential:

class Downloader
{
    static void Main(string[] args)
    {
        NetworkCredential nc = new NetworkCredential(args[0], args[1]);
        WebProxy proxy = new WebProxy(args[2], false);
        proxy.Credentials = nc;

        WebRequest request = new WebRequest(args[3]);
        request.Proxy = proxy;
        using (WebResponse response = request.GetResponse())
        {
            Console.WriteLine(
                @"{0} - {1} bytes",
                response.ContentType,
                response.ContentLength);
        }
    }
}

Когда я скомпилировал и запустил этот полный пример:

C:\cs>csc proxy.cs
Microsoft (R) Visual C# 2010 Compiler version 4.0.30319.1
Copyright (C) Microsoft Corporation. All rights reserved.


C:\cs>proxy user pass http://proxy:80 http://www.google.com
text/html; charset=ISO-8859-1 - 31398 bytes

C:\cs>

Конечно, я использовал своего действующего пользователя / пароль и прокси для своей рабочей учетной записи.

...