读取HttpWebResponse流的两种方法及注意的问题

Posted Herzog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读取HttpWebResponse流的两种方法及注意的问题相关的知识,希望对你有一定的参考价值。

1.  获取流

     HttpWebRequest request= (HttpWebRequest)WebRequest.Create(uri); //构建http request
     
request.Method = "get";
     HttpWebResponse response = (HttpWebResponse)hwr.GetResponse();    //发出请求并获得Response
     resStream = response.GetResponseStream();          //获得Response的流

2. 读
1).  第一种方式:
     
 int count = (int)response.ContentLength;
                int offset = 0;
                buf = new byte[count];
                while (count > 0)
                {
                    int n = resStream.Read(buf,offset,count);
                    if (n == 0) break;
                    count -= n;
                    offset += n;
                    Console.WriteLine( "in loop " + getString(buf) ); //测试循环次数
                }
     string content = Encoding.Default.GetString(buf, 0, buf.Length);

     必须循环读流, 不能一次读(resStream.Read(buf,0,count); ), 否则读的流可能不完整

2) 第二种方式://用StreamReader读取流
     string content = "";

     using (StreamReader  sr = new StreamReader(resStream))     
     {
          content = sr.ReadToEnd();
     }
























以上是关于读取HttpWebResponse流的两种方法及注意的问题的主要内容,如果未能解决你的问题,请参考以下文章

Android 实现瀑布流的两种思路

从request中获取文件流的两种方式,配置文件上传大小

将数组转换为Stream流的两种方式--- Stream.of(数组名) 与 Arrays.stream(数组名)

Springboot读取配置文件的两种方法

python 读取并显示图片的两种方法

spring 读取properties的两种方法