奇了怪了! 有高手么?来挑战一下 httpwebrequest 的故事 为求经验100分放送 我可以通过 webbrower 控件搞定这个,但我想知道,它到底做了什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有没有嵌了一个 asp 的搞 session ? 网站用的jsp,session也是cookie的一种,我都接收到了 我测试没有问题,可以下载private void button1_Click(object sender, EventArgs e) { System.Net.WebClient wb = new System.Net.WebClient(); wb.Headers.Add("Accept-Encoding","gzip, deflate"); wb.Headers.Add("Cookie", "chk=113195; chk1=7; chk2=ETC; chk3=RP530060--0; __utma=69662033.524220299.1196127331.1196128043.1196128746.4; __utmb=69662033; __utmz=69662033.1196128746.4.3.utmccn=(referral)|utmcsr=alldatasheet.com|utmcct=/datasheet-pdf/pdf/113202/ETC/RP530060--0.html|utmcmd=referral; __utmc=69662033; __utma=191189370.20712304.1196127280.1196127987.1196128709.4; __utmb=191189370; __utmz=191189370.1196127280.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); __utmc=191189370"); byte[] b= wb.DownloadData("http://pdf1.alldatasheet.com/datasheet-pdf/view/113202/ETC/RP530060--0/datasheet.pdf"); System.IO.FileStream fs = new System.IO.FileStream(@"c:\aa.pdf", System.IO.FileMode.Create); fs.Write(b, 0, b.Length); fs.Close(); MessageBox.Show(b.Length.ToString()); } 和Referer 没有关系,他的cookie很长,不只4个,另外你需要添加Accept-Encoding识别服务器iis的压缩 感谢6楼, 这样加是可以的但,Cookie 你是用人工方式得到的吧? 这个网站比较恶心:每个pdf文件对应一个 Cookie, 我通过 httpwebrequest 只能得到前4个 cookies 后边的压根得不到,但是通过别的工具(ieheader)是可以得到的不知道大家对读取Cookies 有什么经验? 事实上,需求批量下载所有pdf,大概1000w个每次都得先去 .... html 得到cookies ; 然后再用这个cookies 定位到 .....pdf 来下载,而且,每个pdf对应的cookies都不同,没啥可靠的规律可言 System.Net.WebClient wb = new System.Net.WebClient(); wb.Headers.Add("Cookie", "chk=113195; chk1=7; chk2=ETC; chk3=RP530060--0;"); byte[] b = wb.DownloadData("http://pdf1.alldatasheet.com/datasheet-pdf/view/113202/ETC/RP530060--0/datasheet.pdf"); System.IO.FileStream fs = new System.IO.FileStream(@"e:\aa.pdf", System.IO.FileMode.Create); fs.Write(b, 0, b.Length); fs.Close(); MessageBox.Show(b.Length.ToString());webClient 这样就可以了,我很奇怪webrequest咋就不行,需要webrequest 显示下载进度和断点续传功能 pictureBox响应不了click事件 form2中如何设置form1里的值 如何在DELPHI中调用WINDOWS API的回调函数 怎么在 DataGrid中实现插入可编辑行? [学习语言不如学习思想]新的程序设计语言越来越多,拼命学也很难跟上脚步,求教一个能尽量支持长远的学习方法???怎么样学习编程思想? c#调用ssis包,求解! VS2008怎么翻看重载函数提示 请教关于字符串的2个小问题 如何在C#程序中通过modem拨号上网,并且随时能够判断是否已联网? 一点麻烦....新手问题 菜鸟请教安装DotNet2.0是怎么回事 关于数据库函数或者C#方法的应用(绝对实用)
private void button1_Click(object sender, EventArgs e)
{
System.Net.WebClient wb = new System.Net.WebClient();
wb.Headers.Add("Accept-Encoding","gzip, deflate");
wb.Headers.Add("Cookie", "chk=113195; chk1=7; chk2=ETC; chk3=RP530060--0; __utma=69662033.524220299.1196127331.1196128043.1196128746.4; __utmb=69662033; __utmz=69662033.1196128746.4.3.utmccn=(referral)|utmcsr=alldatasheet.com|utmcct=/datasheet-pdf/pdf/113202/ETC/RP530060--0.html|utmcmd=referral; __utmc=69662033; __utma=191189370.20712304.1196127280.1196127987.1196128709.4; __utmb=191189370; __utmz=191189370.1196127280.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); __utmc=191189370");
byte[] b= wb.DownloadData("http://pdf1.alldatasheet.com/datasheet-pdf/view/113202/ETC/RP530060--0/datasheet.pdf");
System.IO.FileStream fs = new System.IO.FileStream(@"c:\aa.pdf", System.IO.FileMode.Create);
fs.Write(b, 0, b.Length);
fs.Close();
MessageBox.Show(b.Length.ToString());
}
wb.Headers.Add("Cookie", "chk=113195; chk1=7; chk2=ETC; chk3=RP530060--0;");
byte[] b = wb.DownloadData("http://pdf1.alldatasheet.com/datasheet-pdf/view/113202/ETC/RP530060--0/datasheet.pdf");
System.IO.FileStream fs = new System.IO.FileStream(@"e:\aa.pdf", System.IO.FileMode.Create);
fs.Write(b, 0, b.Length);
fs.Close();
MessageBox.Show(b.Length.ToString());webClient 这样就可以了,我很奇怪webrequest咋就不行,需要webrequest 显示下载进度和断点续传功能