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

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

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

阅读 1.6k
1 个回答
新手上路,请多包涵

使用using语句块

using(WebRequest req = WebRequest.Create(url))
{
    // TODO
    using(StreamReader reader = new StreamReader(stream, Encoding.UTF8))
    {
    
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进