zoukankan      html  css  js  c++  java
  • Stream转MemoryStream解决Stream.Length报错此流不支持查找操作

    1.StreamToMemoryStream

     MemoryStream StreamToMemoryStream(Stream instream)
            {
                MemoryStream outstream = new MemoryStream();
                const int bufferLen = 4096;
                byte[] buffer = new byte[bufferLen];
                int count = 0;
                while ((count = instream.Read(buffer, 0, bufferLen)) > 0)
                {
                    outstream.Write(buffer, 0, count);
                }
                return outstream;
            }

    2.Stream.Length报错:此流不支持查找

                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + (data == "" ? "" : "?" + data));
                    request.Method = "GET";
                    using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
                    {
                        if (response.StatusCode == HttpStatusCode.OK)
                        {                       
                            Stream rs =response.GetResponseStream();                                  
                            
                            var ms = StreamToMemoryStream(rs);
                            ms.Seek(0, SeekOrigin.Begin);                        int buffsize =(int)ms.Length; //rs.Length 此流不支持查找,先转为MemoryStream
                            byte[] bytes = new byte[buffsize];
    
                            ms.Read(bytes, 0, buffsize);
                            ms.Flush();ms.Close();
                  rs.Flush();rs.Close();
    }

    From:http://www.cnblogs.com/xuejianxiyang/p/5816684.html

  • 相关阅读:
    第九章、查找
    opencv- python使用
    opencv初入
    初入
    第四章、数学问题
    数据结构
    分享一个SQLSERVER脚本
    详解SQL语句的集合运算
    数据库权限分配探讨
    数据库分区分表以及读写分离
  • 原文地址:https://www.cnblogs.com/xuejianxiyang/p/5816684.html
Copyright © 2011-2022 走看看