Uri uri = new Uri("http://" + Api + "/api/sysuncontrolledfile/download?Id=" + BOM.FileId); WebRequest req = WebRequest.Create(uri); WebResponse resp = req.GetResponse(); Stream str = resp.GetResponseStream(); string filePath = "C:/Downloads/FileName.ext"; // 指定文件保存路径及名称 using (FileStream fs = new FileStream(filePath, FileMode.Create)) { byte[] buffer = new byte[1024]; int bytesRead = str.Read(buffer, 0, buffer.Length); while (bytesRead > 0) { fs.Write(buffer, 0, bytesRead); bytesRead = str.Read(buffer, 0, buffer.Length); } } str.Close(); resp.Close(); 换种方式
时间: 2024-02-07 20:03:11 浏览: 26
你可以使用 `HttpClient` 类来下载文件,代码如下:
```
Uri uri = new Uri("http://" + Api + "/api/sysuncontrolledfile/download?Id=" + BOM.FileId);
string filePath = "C:/Downloads/FileName.ext"; // 指定文件保存路径及名称
using (HttpClient client = new HttpClient())
{
using (HttpResponseMessage response = await client.GetAsync(uri))
{
using (Stream stream = await response.Content.ReadAsStreamAsync())
{
using (FileStream fs = new FileStream(filePath, FileMode.Create))
{
byte[] buffer = new byte[1024];
int bytesRead = await stream.ReadAsync(buffer, 0, buffer.Length);
while (bytesRead > 0)
{
await fs.WriteAsync(buffer, 0, bytesRead);
bytesRead = await stream.ReadAsync(buffer, 0, buffer.Length);
}
}
}
}
}
```
在上述代码中,我们使用 `HttpClient` 类来发送 GET 请求获取文件流,然后将文件流写入到指定的文件路径中。注意,在使用 `HttpClient` 类时需要使用 `await` 关键字来等待异步操作完成。