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);
                    }
                }
            }

    --

  • 相关阅读:
    SpringCloud Gateway使用实例
    Nacos服务注册与发现
    HashMap源码分析——put方法
    Volatile关键字——内存可见性
    Java的JIT编译器
    why spring?
    mysql 锁
    sql server 表变量和临时表
    mysql 存储过程
    mysql 截取字符串
  • 原文地址:https://www.cnblogs.com/runliuv/p/5669600.html
Copyright © 2011-2022 走看看