【发布时间】:2016-06-15 14:31:14
【问题描述】:
我使用了一个 web 服务,它返回一个 zip 文件,作为一个字符串,而不是我预期的字节。我试图将它写入磁盘,但是当我打开它时,它告诉我它已损坏。我做错了什么?
string cCsv = oResponse.fileCSV;//this is the result from webservice
MemoryStream ms = new MemoryStream(System.Text.Encoding.ASCII.GetBytes(cCsv));
using (FileStream file = new FileStream("test.zip", FileMode.Create, FileAccess.Write))
{
ms.WriteTo(file);
}
ms.Close();
【问题讨论】:
-
您能在向您的网络服务询问此 csv 文件的位置添加一些代码吗?
-
如果不知道应该如何解释
cCsv字符串,就无法回答您的问题。听起来你也不知道。关于 Web 服务返回的内容,您有任何更正式的信息/规范吗? -
您无法通过 Web 服务传递原始二进制数据,因此您的响应以某种方式进行了文本编码(例如 BASE64)。您必须先将文本数据解码回二进制。
-
如果 zip 文件以字符串形式返回,那么它可能是以某种文本格式编码的。您需要对其进行解码(以取回字节),然后将其写入文件。