Удаленный сервер возвратил ошибку: (401) Несанкционированный - PullRequest
10 голосов
/ 11 января 2010

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

private void buttondownloadfile_Click(object sender, EventArgs e)
{
    NetworkCredentials nc = new NetworkCredentials("?", "?", "http://cdrs.globalpopsvoip.com/0000069/20091229/20091228_20091228.CDR");   
    WebClient client = new WebClient();

    client.Credentials = nc;
    String htmlCode = client.DownloadString("http://cdrs.globalpopsvoip.com/0000069/20091229/20091228_20091228.CDR");

    MessageBox.Show(htmlCode);
}

MessageBox просто для проверки, проблема в том, что каждый раз, когда я добираюсь до этой строки:

String htmlCode = client.DownloadString("http://cdrs.globalpopsvoip.com/0000069/20091229/20091228_20091228.CDR");

Я получаю исключение:

Удаленный сервер вернул ошибку: (401) Несанкционированный.

Как мне это исправить?

Ответы [ 3 ]

13 голосов
/ 23 июня 2013

В моем случае client.UseDefaultCredentials = true; сделал свое дело.

6 голосов
/ 07 мая 2010

Я попробовал следующий код, и он работает.

    private void Form1_Load(object sender, EventArgs e)        
    {
        try
        {
            // Create Request
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(@"http://192.168.0.181/axis-cgi/com/ptz.cgi?move=up");

            // Create Client
            WebClient client = new WebClient();

            // Assign Credentials
            client.Credentials = new NetworkCredential("root", "a");

            // Grab Data
            string htmlCode = client.DownloadString(@"http://192.160.0.1/axis-cgi/com/ptz.cgi?move=up");

            // Display Data
            MessageBox.Show(htmlCode);
        }
        catch (WebException ex) 
        {
            MessageBox.Show(ex.ToString());
        }
    }
3 голосов
/ 11 января 2010

Попробуйте создать NetworkCredential без этой доменной части:

NetworkCredential nc = new NetworkCredential("?", "?");   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...