zoukankan      html  css  js  c++  java
  • 读取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();
         }

  • 相关阅读:
    CentOS7安装Oracle 11gR2 安装
    CentOS7 FTP服务搭建(虚拟用户访问FTP服务)
    .NET中RabbitMQ的使用
    ElasticSearch(站内搜索)
    SignalR 2.1 简单入门项目
    Oracl基础知识(一)
    CentOS6—HAProxy安装与配置
    Redis C#缓存的使用
    CentOS6— Redis安装(转和延续)
    Linux(CentOS)常用操作指令(二)
  • 原文地址:https://www.cnblogs.com/Herzog3/p/6133445.html
Copyright © 2011-2022 走看看