C# http get https://wx.qq.com 总是关闭连接的奇怪问题

最近在做一些微信相关的东西,使用C#遇到了一个非常诡异的问题。
请教大神。共同探讨一下原因。

先贴代码



static void Main(string[] args)
        {   
            while (true)
            {
                HttpGet();
            }

            Console.Read();
        }


        public static string HttpGet()
        {
            string html = string.Empty;

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://wx.qq.com");

            try
            {
                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
                    using (Stream stream = response.GetResponseStream())
                    {
                        using (StreamReader reader = new StreamReader(stream))
                        {
                            html = reader.ReadToEnd();

                            reader.Close();
                        }
                        stream.Flush();
                        stream.Close();
                    }
                    response.Close();
                }

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                request.Abort();
                request = null;
                GC.Collect();
                Thread.Sleep(15000);
            }
            return html;
        }

关键的问题就是,连续两次https的keep-alive访问wx.qq.com,如果第二次请求之前sleep15秒钟,那第二次请求一定会报基础连接被关闭的异常。

然后如果打开httpanalyzer或者fidder抓包工具,那就没有这个问题。

stackoverflow有人说fidder相当于一个代理,会有一套自己的http连接池的管理办法。

不知道c#能不能实现类似的功能,或者是我修改某些参数就能解决这个异常。

其实就是实际做了点微信相关的东西,遇到了一些问题,有时候两次发到wx.qq.com的请求中间出现网络问题,间隔一会之后,后面的所有请求都会报错,非常诡异,求大神帮忙解答这个问题,感激不尽

可能服务器有spam检测,强行关掉了你的连接

你不sleep那么长时间是否会断开连接。有可能微信的session维持机制超时了。除了keepalive,可能还有心跳机制。