基础连接已经关闭 解决方案

       /// 
        /// iEncode=1- gb2312; 2- UTF8
       /// 
       /// 
       /// 
       /// 
       public static string GetPageInfo(String url, int iEncode = 1)
       {
           WebResponse wr_result = null;
           StringBuilder txthtml = new StringBuilder();
           try
           {
               //WebRequest wr_req = WebRequest.Create(url);
               //wr_result = wr_req.GetResponse();

               HttpWebRequest wr_req = WebRequest.Create(url) as HttpWebRequest;
               wr_req.UserAgent = "Mozilla/4.0   (compatible;   MSIE   6.0;   Windows   NT   5.1;   SV1;   .NET   CLR  4.0) ";
               //wr_req.UserAgent = "Mozilla/4.0   (compatible;   MSIE   6.0;   Windows   NT   5.1;   SV1;   .NET   CLR  2.0.50727) ";
               wr_req.KeepAlive = false;
               wr_req.ProtocolVersion = HttpVersion.Version10;
               wr_result = wr_req.GetResponse();
              
               Stream ReceiveStream = wr_result.GetResponseStream();
               Encoding encode = System.Text.Encoding.GetEncoding("gb2312");

               if (iEncode == 1)
               {
                   encode = System.Text.Encoding.GetEncoding("gb2312");
               }
               else if (iEncode == 2)
               {
                   encode = Encoding.UTF8;
               }

               //Encoding encode = Encoding.Unicode;
               //Encoding encode = Encoding.UTF8;

               StreamReader sr = new StreamReader(ReceiveStream, encode);
               if (true)
               {
                   Char[] read = new Char[256];
                   int count = sr.Read(read, 0, 256);
                   while (count > 0)
                   {
                       String str = new String(read, 0, count);
                       txthtml.Append(str);
                       count = sr.Read(read, 0, 256);
                   }
               }
           }
           catch (Exception ex)
           {
               txthtml.Append("err");
           }
           finally
           {
               if (wr_result != null)
               {
                   wr_result.Close();
               }
           }
           return txthtml.ToString();
       }

用这2行 

WebRequest wr_req = WebRequest.Create(url);
wr_result = wr_req.GetResponse();

就会出现 基础连接已经关闭的错误

改用

HttpWebRequest wr_req = WebRequest.Create(url) as HttpWebRequest;
wr_req.UserAgent = "Mozilla/4.0   (compatible;   MSIE   6.0;   Windows   NT   5.1;   SV1;   .NET   CLR  4.0) ";
//wr_req.UserAgent = "Mozilla/4.0   (compatible;   MSIE   6.0;   Windows   NT   5.1;   SV1;   .NET   CLR  2.0.50727) ";
wr_req.KeepAlive = false;
wr_req.ProtocolVersion = HttpVersion.Version10;
 wr_result = wr_req.GetResponse();

就可以了.


参考:

http://blog.csdn.net/flyingdream123/article/details/6766487

http://q.cnblogs.com/q/8593/

你可能感兴趣的:(Winform,(C#),可用类库,方法,DLL等)