问答

一厢情愿之不放手:C # WebRequest 资源不释放

作者:admin 2021-04-18 我要评论

public String getContent(String url) { WebRequest req = WebRequest.Create(url); req.Method = "GET"; HttpWebResponse resp = (HttpWebResponse)req.GetRes...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)
public String getContent(String url)
        {

            WebRequest req = WebRequest.Create(url);

            req.Method = "GET";
           
            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
            
            Stream stream = resp.GetResponseStream();
            
            StreamReader reader = new StreamReader(stream, Encoding.UTF8);
            String s = reader.ReadToEnd();
            stream.Close();
            reader.Close();
            //req.KeepAlive = false;
            resp.Close();
            req.Abort();


            if (resp != null)
            {
                resp.Close();
            }
            if (req != null)
            {
                req.Abort();
            }




            System.GC.Collect();

            Console.WriteLine("data");
            return s;
        }

再次调用时
基础连接已经关闭: 接收时发生错误。

###

使用using语句块

using(WebRequest req = WebRequest.Create(url))
{
    // TODO
    using(StreamReader reader = new StreamReader(stream, Encoding.UTF8))
    {
    
    }
}

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • nginx响应速度很慢

    nginx响应速度很慢

  • 点击选中的多选框,会在已选那一栏显示

    点击选中的多选框,会在已选那一栏显示

  • PHP 多态的理解

    PHP 多态的理解

  • 关于C语言中static的问题

    关于C语言中static的问题

腾讯云代理商
海外云服务器