C#将流写入Windows IoT上的.zip文件
我已经编写了一个UWP应用程序,通过REST请求下载文件。 该应用程序运行在带有Windows IoT的Raspberry Pi 3上 我想将“testStream”写入一个.zip文件并下载它。 . 这是我的密码:C#将流写入Windows IoT上的.zip文件,c#,rest,download,uwp,windowsiot,C#,Rest,Download,Uwp,Windowsiot,我已经编写了一个UWP应用程序,通过REST请求下载文件。 该应用程序运行在带有Windows IoT的Raspberry Pi 3上 我想将“testStream”写入一个.zip文件并下载它。 . 这是我的密码: try { Uri uri = new Uri("http://xxxx:3080/cds/api/download/book/46795403-de-DE"); HttpWebRequest getRequest =
try
{
Uri uri = new Uri("http://xxxx:3080/cds/api/download/book/46795403-de-DE");
HttpWebRequest getRequest = (HttpWebRequest)HttpWebRequest.Create(uri);
getRequest.Method = "GET";
getRequest.Headers["Authorization"] = "Bearer xyxyxy";
HttpWebResponse response2 = await getRequest.GetResponseAsync() as HttpWebResponse;
StreamReader streamReader2 = new StreamReader(response2.GetResponseStream());
Stream testStream = response2.GetResponseStream();
getResult = streamReader2.ReadToEnd();
textBox2.Text = getResult;
await Task.Run(() =>
{
Task.Yield();
using (var fs = File.Create("\\myZipDownload.zip"))
{
testStream.CopyTo(fs);
}
});
}
我得到了这个错误:
"Access to the path 'C:\myZipDownload.zip' is denied."
你需要一个可写的目的地 您可以使用Environment.GetFolderPath获取可写路径
可能与Windows server 2008 R2重复!=谢谢!我现在可以下载这个文件了。但是它的大小是0字节。我在哪里失败?@k.troy2012,不确定,我知道
GetResponse
/GetResponseAsync
将返回相同的HttpWebResponse
对象,而不是“新”对象,因此,可能是因为您对GetResponseStream
进行了两次调用,那么第二次流已经被读取,需要重新开始读取(我不确定web响应是否可能…)。尝试删除对GetResponseStream
的所有调用,但用于写入文件的调用除外。还记得在此调用Dispose
,或者使用语句将其包装在中。我删除了另一个调用GetResponseStream,现在它可以正常工作了!