webclient 401进入c#

时间:2012-02-07 13:14:31

标签: c# webclient

使用webclient时遇到一些问题。

当我尝试时:

var client = new WebClient();
client.Credentials = new NetworkCredential("intranet.homolog", "S3br@32011", "na-sebrae");
var html = client.DownloadData("http://www.intranet.sebrae.com.br/noticias/todas-as-notícias/rss.aspx?estado=");

我收到错误(401)。

此网址返回xml Feed,当我访问浏览器时,我正常登录。

此用户和密码是真实的。

我有一些想法,我用webclient访问它吗?

2 个答案:

答案 0 :(得分:1)

这是我的猜测:你误用了NetworkCredential构造函数

正确的语法是

public NetworkCredential(
    string userName,
    string password,
    string domain
)

第一个用户名,然后是密码,然后是域名 - 你错了。

尝试以下方法:

var client = new WebClient();
client.Credentials = new NetworkCredential("na-sebrae", 
                                           "S3br@32011",  "intranet.homolog");
var html = client.DownloadData("http://www.intranet.sebrae.com.br" +
                               "/noticias/todas-as-notícias/rss.aspx?estado=");

答案 1 :(得分:1)

我也得到同样的错误。相同的链接在浏览器中工作得更好,但为WebClient提供了401异常。

    string url = "http://www.intranet.sebrae.com.br/noticias/todas-as-notícias/rss.aspx?estado=";
    var webClient = new WebClient();

    webClient.Credentials = CredentialCache.DefaultCredentials;

    byte[] html = webClient.DownloadData(fileAbsoluteUri);