澳门至尊网站-首页

您的位置:澳门至尊网站 > 搜索引擎 > HttpHelper关于对HttpClient的正确使用

HttpHelper关于对HttpClient的正确使用

2019-10-25 03:22

归来目录

法定的不肯定是对的,机器最能表达全体

不了然从哪一天起,大家在写数据库连接,互联网连接,文件操作时会习贯加上using,这种习于旧贯被大家误称为生机勃勃种格局,但实际上,一切职业都有因有果的,使用using的意义是怎么?笔者想以此题目大家都晓得应该,它能够自由能源,而对此数据库连接来讲,它不是释放数据连接,而只是把连接放里“连接池”,等待后一次利用时,直接用池子里抽取来就可以,好处当然就是节省了多数“创建连接”时的支出,而不对网络连接来讲,则不是那么轻松了,无法一起而义,那一点对于MSDN也可能有错误的传道和写法,近日在看博文时(老外的,Infoq上翻译的)给出了福利的凭据,具体看下文。

using的写法其实正是对IDispose模块的兑现 

  using (var http = new HttpClient(handler))
   {
    http.Timeout = new TimeSpan(0, 0, timeOut);
    HttpResponseMessage response;
    response = http.GetAsync(GeneratorUri(requestUri, ApiValidateHelper.GenerateCipherText(nv))).Result;
    return response;
   }

对此地点的代码,也是MSDN推荐的写法,即在运用完网络财富后,自动释放它,而对此下叁次互联网能源的走访,还索要从新去构建,事实上,从财富的销毁到下一次能源的确立需求不小的代价,而且你的互连网连接的塑造(套接字)是有限量的,并非无穷无近的,所以,大家务要求拓宽调节。

有关普通话小说:

连锁斯洛伐克语随笔:

下面是大叔对using格局进行的测量检验,能够因而截图来看,大家的TCP连接有众多,那样当高并发意况下,你的套接字连接将会被用斤。

图片 1

可用套接字耗尽后或然现身这样的十三分:System.Net.Sockets.SocketException!

改正后的次序(单例恐怕静态化的HttpClient)

   readonly static HttpClient http = new HttpClient(new HttpClientHandler()
        {
            AutomaticDecompression = System.Net.DecompressionMethods.GZip
        });
        [TestMethod]
        public void Get()
        {
            Stopwatch sw = new Stopwatch();
            sw.Restart();
            for (int i = 0; i < 1000; i++)
            {
                var response = http.GetAsync("http://www.sina.com").Result;
            }
            sw.Stop();
            Console.WriteLine("1000个请求的时间" + sw.ElapsedMilliseconds);
        }

校订之后,我们得以看出整个HttpClient的测验性能有了一目精通的进级!

图片 2

对此调整台出口的TCP连接意况,大家也只看到一条有关的数目,那也是大家愿意见到的!

netstat -nbp | findstr 202.108.33.107

结果

图片 3

聊到底,谢谢Infoq的编纂“谢丽”找了如此好的意气风发篇文章,费力了!

归来目录

本文由澳门至尊网站发布于搜索引擎,转载请注明出处:HttpHelper关于对HttpClient的正确使用

关键词:

  • 上一篇:没有了
  • 下一篇:没有了