C# 获取嵌入的pdf文件

C# 获取嵌入的pdf文件,c#,pdf,stream,C#,Pdf,Stream,我浏览了论坛,发现了许多看似相关的问题,但迄今为止没有任何帮助。我想能够从各种网站上获得精选的PDF。下面是一个片段,我正在成功地将其用于我感兴趣的大多数文档 if (!String.IsNullOrEmpty(filePaths[1])) { var myRequest = (HttpWebRequest)WebRequest.Create(filePaths[1]); myRequest.Method = "GET"; WebResponse myRespons

我浏览了论坛,发现了许多看似相关的问题,但迄今为止没有任何帮助。我想能够从各种网站上获得精选的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);
          }
}
我得到了一个文件,但它说它被破坏了。此外,使用UTF8使文件大小比我访问站点时得到的文件大。如果我使用Encoding.ASCII,文件大小是正确的,但仍然会得到损坏的文件错误。我可以通过使用记事本打开文件来查看文件中的英文文本,所以我不确定到底是什么内容被破坏了


任何可以提供的帮助都将不胜感激,我已经在这方面做了很长时间了

您正在使用StreamReader(即用于读取文本数据的类)来读取PDF(即二进制数据)。这几乎肯定会损坏数据。不过,我对c语言不太了解,所以不知道要使用哪些类。
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);
          }
     }
}