基本上,我试图从 CNet 的 Download.com 获取 EXE
所以我创建了网络解析器,到目前为止一切进展顺利。
这是直接从他们的网站提取的示例链接:
http://dw.com.com/redir?edId=3&siteId=4&oId=3001-20_4-10308491&ontId=20_4&spi=e6323e8d83a8b4374d43d519f1bd6757&lop=txt&tag=idl2&pid=10566981&mfgId=6250549&merId=6250549&pguid=PlvcGQoPjAEAAH5rQL0AAABv&destUrl=ftp%3A%2F%2F202.190.201.108%2Fpub%2Fryl2%2Fclient%2Finstaller-ryl2_v1673.exe
问题是这样的:当您尝试下载时,它以 HTTP 开头,然后重定向到 FTP 站点。我尝试过.NET的WebClient和HttpWebRequest对象,看起来两者都不支持重定向。
此代码在 GetResponse() 处失败;
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://dw.com.com/redir");
WebResponse response = req.GetResponse();
现在,我也尝试过这个:
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://dw.com.com/redir");
req.AllowAutoRedirect = false;
WebResponse response = req.GetResponse();
string s = new StreamReader(response.GetResponseStream()).ReadToEnd();
它不再抛出错误,但变量 s 结果是一个空字符串。
我不知所措了!有人可以帮忙吗?
您可以从response.headers 中获取“Location”标头的值,然后创建一个新的FtpWebRequest 来下载该资源。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)