Httpwebrequest在while循环中减慢速度

本文关键字:速度 循环 while Httpwebrequest | 更新日期: 2023-09-27 18:06:26

在c#中,我创建了一个要运行的任务。它可以运行,但在重复55次到300次之后,每个循环需要越来越长时间才能完成。怎么了?

var task = Task.Run(() =>
        {
            int i = 0;
            string url = "http://xxxx/getall";
            string token = "dddd";
            string sendData = "{somejson}"
            while (true)
            {
                //this gets slower and slower after 50-300+ repeats
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);//create
                req.Headers.Add("Authorization", token);
                req.ContentType = "application/json";
                req.Accept = "application/json";
                req.Method = "POST";
                var stream_req = req.GetRequestStream();//create
                byte[] reqdata = Encoding.UTF8.GetBytes(sendData);
                stream_req.Write(reqdata, 0, reqdata.Length);
                stream_req.Close();
                var response = req.GetResponse();//create
                //get response
                var reader = new StreamReader(response.GetResponseStream());//create
                json = reader.ReadToEnd();
                reader.Close();
                response.Close();
                Console.WriteLine(i.ToString()+":"+json.Substring(0, 20)); 
                i++;
            }
        });

Httpwebrequest在while循环中减慢速度

对不起,这不是由客户端代码引起的,而是由服务器端引起的。事实证明,服务器有一个自动阈值限制,将在必要时作出反应。

我已经测试过了,这段代码对其他一些服务器url没有任何问题。