zoukankan      html  css  js  c++  java
  • 调用wcf 得不到HttpWebResponse.ContentLength的长度

    HttpWebRequest wreq = (HttpWebRequest)WebRequest.Create(strUrl);
                    wreq.Timeout = _httpTimeout * 1000;
                    wreq.ReadWriteTimeout = _httpTimeout * 1000;
                    wreq.Method = "POST";
                    wreq.ContentType = "application/json;charset=utf-8";
                    wreq.ContentLength = data.Length;
                    using (Stream putStream = wreq.GetRequestStream())
                    {
                        putStream.Write(data, 0, data.Length);
                    }
    
                    var resp = wreq.GetResponse() as HttpWebResponse;
                    string rst = string.Empty;
                    using (Stream putStream = resp.GetResponseStream())
                    {
                        StreamReader sr = new StreamReader(putStream);
                        rst = sr.ReadToEnd();
                    }

     --way 2,stream 转 byte[] :

     byte[] by = new byte[800];
                int size = 1024;
                int read = 0;
                using (MemoryStream ms = new MemoryStream())
                {
                    byte[] buffer = new byte[size];
                    do
                    {
                        read = stream.Read(buffer, 0, size);
                        ms.Write(buffer, 0, read);
                    } while (read > 0);
    
                    by = ms.ToArray();
                }

     stream 转 byte[] ,这个方法也可以:

    public byte[] ReadFully (Stream stream)
            { 
                // 初始化一个32k的缓存 
                byte[] buffer = new byte[32768];
                using (MemoryStream ms = new MemoryStream())
                { //返回结果后会自动回收调用该对象的Dispose方法释放内存 
                    // 不停的读取 
                    while (true)
                    {
                        int read = stream.Read(buffer, 0, buffer.Length);
                        // 直到读取完最后的3M数据就可以返回结果了 
                        if (read <= 0)
                            return ms.ToArray();
                        ms.Write(buffer, 0, read);
                    }
                }
            }

    --

  • 相关阅读:
    数据库mysql基础语言--各模式的含义
    Linux下判断磁盘是SSD还是HDD的几种方法
    linux解压大全
    RedHat Linux RHEL6配置本地YUM源
    利用ssh传输文件-服务器之间传输文件
    深入理解asp.net里的HttpModule机制
    WPF(一)
    JS中caller和callee
    Vue-Methods中使用Filter
    c#值类型与引用类型区别
  • 原文地址:https://www.cnblogs.com/runliuv/p/5669600.html
Copyright © 2011-2022 走看看