c# httpPost的时候,The operation has timed out

默认windows并发数是2,所以可以设置此数大一点

ServicePointManager.DefaultConnectionLimit = 20;

也可以使用abort释放http连接

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace ConsoleApp47
{
    class Program
    {
        static void Main(string[] args)
        {
            ServicePointManager.DefaultConnectionLimit = 2;
            var ts = DateTime.Now;
            for (int i = 0; i < 100; i++)
            {
                try
                {
                    var tm = DateTime.Now;
                    var cmd = "http://baidu.com";
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(cmd);
                    request.Method = "GET";
                    request.Accept = "Application/json";
                    request.ContentType = "application/json;charset=utf-8";
                    var response = (int)((HttpWebResponse)request.GetResponse()).StatusCode;

                    request.Abort();

                    var res = response == 200 ? 0 : response;
                    Console.WriteLine((DateTime.Now - tm).TotalMilliseconds + "    " + res);
                    //Thread.Sleep(50);
                }
                catch (Exception ex)
                {
                    try
                    {
                        var tm = DateTime.Now;
                        var cmd = "http://baidu.com";
                        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(cmd);
                        request.Method = "GET";
                        request.Accept = "Application/json";
                        request.ContentType = "application/json;charset=utf-8";
                        var response = (int)((HttpWebResponse)request.GetResponse()).StatusCode;

                        request.Abort();

                        var res = response == 200 ? 0 : response;
                        Console.WriteLine((DateTime.Now - tm).TotalMilliseconds +"    "+i+ "    " + res);
                       // Thread.Sleep(50);
                    }
                    catch (Exception e)
                    {
                        
                        throw;
                    }
                    Console.WriteLine("************************" + i + ex.Message);
                }

            }

            Console.WriteLine((DateTime.Now - ts).TotalMilliseconds + "    结束");
            Console.Read();


        }
    }
}

 

posted @ 2020-04-17 16:20  灰主流  阅读(2477)  评论(0编辑  收藏  举报