【发布时间】:2016-11-25 11:23:32
【问题描述】:
我已经尝试了几乎所有我能想到的方法来让它发挥作用,包括我在网上找到的一些东西。我要做的就是从我必须登录的网站下载一个文件(有一个直接链接)。
我尝试使用“UploadValues”执行以下操作:
WebClient myWebClient = new WebClient();
NameValueCollection myNameValueCollection = new NameValueCollection();
myNameValueCollection.Add("username", this.UserName);
myNameValueCollection.Add("password", this.Password);
byte[] responseArray = myWebClient.UploadValues(felony, myNameValueCollection);
myWebClient.DownloadFile(felony, localfelony);
我也尝试将登录信息放在标题中。正如您从注释代码中看到的那样,我也尝试设置凭据:
WebClient client = new WebClient();
//client.UseDefaultCredentials = false;
//client.Credentials = new NetworkCredential(this.UserName, this.Password);
client.Headers.Add(HttpRequestHeader.Authorization, "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(this.UserName + ":" + this.Password)));
client.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36");
//client.Headers.Add(HttpRequestHeader.Cookie, this.webBrowser.Document.Cookie);
client.DownloadFile(felony, localfelony);
无论我尝试什么,我唯一能下载的就是一个最终成为登录页面的文件,就好像它不接受我传递的登录信息一样。
我查看了标题等,我没有看到任何异常可以解释为什么这不起作用。有什么想法吗?
【问题讨论】:
标签: c# download authorization webclient webclient-download