我浏览了论坛,发现了许多看似相关的问题,但迄今为止没有任何帮助。我希望能够从各种网站获得精选的pdf。这是我正在成功使用我感兴趣的大多数文档的片段。
if (!String.IsNullOrEmpty(filePaths[1]))
{
var myRequest = (HttpWebRequest)WebRequest.Create(filePaths[1]);
myRequest.Method = "GET";
WebResponse myResponse = myRequest.GetResponse();
var sr = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
var fileBytes = sr.ReadToEnd();
using (var sw = new StreamWriter("<localfilepath/name")
{
sw.Write(fileBytes);
}
}
当我尝试获取此文档时出现问题:http://www.azdor.gov/LinkClick.aspx?fileticket=r_I2VeNlcCQ%3d&tabid=265&mid=921
如果我使用上面的代码,我会收到DotNetNuke错误。我尝试使用WebClient,正如许多其他帖子所建议的那样,但是得到了同样的错误。
当我使用此代码时:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.UserAgent = @"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0";
request.ContentType = "application/x-unknown";
request.Method = "GET";
using (WebResponse response = request.GetResponse())
{
using (Stream stream = response.GetResponseStream())
{
var sr2 = new StreamReader(stream, Encoding.UTF8);//.ASCII);
var srt = sr2.ReadToEnd();
var a = srt.Length;
using (var sw = new StreamWriter("WebDataTestdocs/testpdf.pdf"))
{
sw.Write(srt);
}
}
}
我收到了一个文件,但它说它已损坏了。使用UTF8也会使文件大小大于我在访问网站时获得的文件大小。如果我创建Encoding.ASCII,文件大小是正确的,但仍然会收到损坏的文件错误。我可以用记事本打开文件中的英文文本,所以我不确定究竟是什么损坏了。
我将非常感谢任何可以提供的帮助,我已经有很长一段时间了!