C# 读取大数据流的HttpWebRequest和Response
我需要从web服务器读取大数据流或数据。 这不是流,而是从客户端读取大块的大数据 为此,我创建了一个Http Web请求。下面是示例代码C# 读取大数据流的HttpWebRequest和Response,c#,httpwebrequest,C#,Httpwebrequest,我需要从web服务器读取大数据流或数据。 这不是流,而是从客户端读取大块的大数据 为此,我创建了一个Http Web请求。下面是示例代码 StreamingObject streamObj = null; using (HttpWebRequest httpReq = WebRequest.Create(uri)) { HttpWebResponse response = httpReq.GetRespons(); Stream responseStream = response
StreamingObject streamObj = null;
using (HttpWebRequest httpReq = WebRequest.Create(uri))
{
HttpWebResponse response = httpReq.GetRespons();
Stream responseStream = response.GetStream();
streamObj = new StreamingObject(response, responseStream);
}
return streamObj;
在我的代码中,我向给定的Uri发出Http Web请求。然后我得到HttpWebResponse和响应流。创建StreamingObject的实例,它是用于存储Http响应和响应流的包装器类
我已经处理了Http Web请求。客户端提供了StreamingObject,流对象有一个方法GetStream,该方法返回底层响应流。当StreamingObject被释放时,Http响应和流被释放
引入StreamingObject的原因是,为了访问底层流,Http响应必须保持打开状态
我想知道这是一种正确的方法还是有更简单的方法。我建议不要处理
HttpWebRequest
对象,因为您可能非常需要它。只需将其添加到StreamingObject
,并在处理StreamingObject
时处理它。例如,我发现如果我想过早地关闭响应流,响应将挂起,直到所有数据都被读取。但是对请求对象调用Abort
将立即关闭流。您确实应该接受其他问题的答案。