2010-01-10 3 views
10

Я пытаюсь получить html-код определенной веб-страницы, У меня есть имя пользователя и пароль, которые являются правильными, но я до сих пор не могу заставить его работать, это мой код:Удаленный сервер возвратил ошибку: (401) Неавторизованный

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"); 

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

The remote server returned an error: (401) Unauthorized.

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

ответ

3

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

NetworkCredential nc = new NetworkCredential("?", "?"); 
+0

спасибо, что это сработало для меня –

6

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

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()); 
     } 
    } 
+0

Это действительно работает ... Perfect !! :) спасибо тонну Rahat :) – Bravo

+12

Какой смысл HttpWebRequest? – Nacht

13

В моем случае client.UseDefaultCredentials = true; сделал трюк.

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