1

我浏览了论坛,发现了许多看似相关的问题,但到目前为止没有任何帮助。我希望能够从各个网站获取精选的 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,文件大小是正确的,但仍然收到损坏的文件错误。我可以通过用记事本打开文件来看到文件中的英文文本,所以我不确定究竟是什么损坏了。

任何可以提供的帮助将不胜感激,我已经有一段时间了!

4

0 回答 0