2017-03-04 95 views
0

我从网址下载XLSX文档此C#代码转换C#的​​HttpWebRequest到VB.NET

var request = (HttpWebRequest)WebRequest.Create("url to xlsx file"); 
      request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; 
      request.Headers[HttpRequestHeader.AcceptEncoding] = "gzip,deflate"; 
      using (var response = request.GetResponse()) 
      using (var stream = response.GetResponseStream()) 
      using (var output = File.Create("H:\\doc.xlsx")) 
      { 
       stream.CopyTo(output); 
      } 

我的目标编程语言是VB.net,所以我改变了C#到VB像下面

Dim request As HttpWebRequest = WebRequest.Create("url to xlsx file") 
     request.AutomaticDecompression = DecompressionMethods.GZip Or DecompressionMethods.Deflate 
     request.Headers(HttpRequestHeader.AcceptEncoding) = "gzip,deflate" 
     Dim response As WebResponse = request.GetResponse() 
     Dim stream As Stream = response.GetResponseStream() 
     Dim output As FileStream = File.Create("H:\doc.xlsx") 

     stream.CopyTo(output) 

由VB下载的xlsx文件已损坏且无法读取,但C#运行良好 错误是什么?

回答

2

尝试包括using声明:有可能整个内容没有被刷新到输出,所以你会得到损坏的消息。

Using response = request.GetResponse() 
    Using stream = response.GetResponseStream() 
     Using output = File.Create("H:\doc.xlsx") 
      stream.CopyTo(output) 
     End Using 
    End Using 
End Using 

using块将确保处置的对象,你应该不管做一个已损坏的文件结束的问题,而且它还将呼吁Close()方法对标的以流和任何数据先前写入缓冲区的文件将在文件流关闭前被复制到文件中,

+0

谢谢你的正确答案 – ramin

+0

我很高兴我可以提供帮助。如果我已经回答了您的问题,请阅读[this](http://stackoverflow.com/help/someone-answers) – CodingYoshi