远程服务器返回错误:(401)未经授权

时间:2010-01-10 21:56:12

标签: c# .net http-status-code-401

我正在尝试获取某些网页的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 个答案:

答案 0 :(得分:13)

在我的情况下client.UseDefaultCredentials = true;做了伎俩。

答案 1 :(得分: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());
        }
    }

答案 2 :(得分:3)

尝试创建没有该域名部分的NetworkCredential

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