为什么我的C#winforms应用程序中第一个HttpClient.PostAsync调用速度极慢?

时间:2016-01-29 12:38:23

标签: c# winforms dotnet-httpclient

我有一个像这样的httpclient:

var client = new HttpClient();

我这样发帖:

var result = client.PostAsync(
                endpointUri,
                requestContent);

得到这样的回复:

HttpResponseMessage response = result.Result;

我理解这个调用会阻塞线程,这就是它应该如何工作(只为自己构建一个工具,不需要异步线程)

第一次运行此调用时,大约需要2分钟才能得到结果。同时,如果我在其他地方完成同样的呼叫,那么它在200ms完成。即使我点击谷歌,也需要2分钟。但是,在第一次通话后,只要我保持应用程序打开,任何额外的通话都是好的。它只是我打开应用程序时的第一个校准。可能导致这种情况的原因是什么?

1 个答案:

答案 0 :(得分:16)

问题是它在很长一段时间内都在试图解析客户端的代理问题。像这样初始化HttpClient就可以了:

var client = new HttpClient(new HttpClientHandler
            {
                UseProxy = false
            });