WebRequest req = WebRequest.Create(uri); WebResponse resp = req.GetResponse();拿到文件流
时间: 2024-02-03 10:04:17 浏览: 118
可以使用以下代码来获取文件流:
```C#
WebRequest req = WebRequest.Create(uri);
WebResponse resp = req.GetResponse();
Stream stream = resp.GetResponseStream();
```
其中,uri 是文件的地址。上述代码中,我们首先创建了一个 WebRequest 对象,然后使用这个对象的 Create 方法来创建一个请求。接着,我们使用 GetResponse 方法来发送请求并获取响应。最后,我们使用 GetResponseStream 方法来获取响应的内容流,这个流可以用来读取文件的内容。
相关问题
WebRequest req = WebRequest.Create(uri); WebResponse resp = req.GetResponse(); Stream str = resp.GetResponseStream(); pdfViewer1.LoadFromStream(str);报错System.NotSupportedException:“Specified method is not supported.”
根据您提供的代码和报错信息,我猜测您使用的是 Syncfusion 的 PDF Viewer 控件。这个控件是支持直接从流中加载 PDF 文件的,但是在您的代码中,出现了“Specified method is not supported.”的异常,这可能是由于您使用的流不支持读取操作。
您可以尝试将获取到的流转化为 MemoryStream 对象,再将 MemoryStream 对象传递给 PDF Viewer 控件,如下所示:
```C#
WebRequest req = WebRequest.Create(uri);
WebResponse resp = req.GetResponse();
Stream str = resp.GetResponseStream();
MemoryStream memStr = new MemoryStream();
str.CopyTo(memStr);
pdfViewer1.LoadFromStream(memStr);
```
上述代码中,我们首先创建了一个 WebRequest 对象,然后使用这个对象的 Create 方法来创建一个请求。接着,我们使用 GetResponse 方法来发送请求并获取响应。然后,我们创建了一个 MemoryStream 对象,并将获取到的流复制到这个 MemoryStream 对象中。最后,我们将 MemoryStream 对象传递给 PDF Viewer 控件的 LoadFromStream 方法。
希望这个解决方案能够帮助您解决问题。如果问题仍然存在,请提供更多的信息,让我更好地理解您的问题。
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();下载文件到指定位置
你可以使用以下代码将文件下载到指定位置:
```
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();
```
其中,`Uri uri`表示文件下载地址;`string filePath`表示文件保存路径及名称。在上述代码中,我们使用 `WebRequest.Create()` 方法创建一个请求,获取到响应后,使用 `WebResponse.GetResponseStream()` 方法获取响应流,然后将文件流写入到指定的文件路径中。最后,记得关闭文件流和响应流。
阅读全文