gpt4 book ai didi

vb.net - 如何将 WebResponse 放入内存流?

转载 作者:行者123 更新时间:2023-12-04 02:54:43 26 4
gpt4 key购买 nike

从 WebResponse 获取文件(在本例中为 .PDF,但任何文件都可以)并将其放入 MemoryStream 的最佳方法是什么?使用 WebResponse 中的 .GetResponseStream() 获取一个 Stream 对象,但是如果您想将该 Stream 转换为特定类型的流,您会怎么做?

最佳答案

SoloBold 的 answer 存在严重问题我在测试时发现的。当使用它通过 FtpWebRequest 读取文件时成MemoryStream它间歇性地无法将整个流读入内存。我追踪到 Peek()有时在前 1460 个字节后返回 -1,即使 Read()会成功(文件比这大得多)。

相反,我提出以下解决方案:

MemoryStream memStream;
using (Stream response = request.GetResponseStream()) {
memStream = new MemoryStream();

byte[] buffer = new byte[1024];
int byteCount;
do {
byteCount = stream.Read(buffer, 0, buffer.Length);
memStream.Write(buffer, 0, byteCount);
} while (byteCount > 0);
}

// If you're going to be reading from the stream afterwords you're going to want to seek back to the beginning.
memStream.Seek(0, SeekOrigin.Begin);

// Use memStream as required

关于vb.net - 如何将 WebResponse 放入内存流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/179676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com