Http WebRequest в c# консольном приложении занимает больше времени в windows сборке - PullRequest
0 голосов
/ 09 февраля 2020

Я пытаюсь сделать следующее с помощью c# консольного приложения 3.1:

  • ping url.
  • получить ответ
  • распечатать его на файл

Проблема:

  • URL-адрес занимает около 15 секунд, чтобы получить ответ.

Код

                WebRequest objWebRequest = WebRequest.Create(url);
                objWebRequest.Timeout = Int32.Parse(obixTimeOut) * 1000;
                string credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes(username + ":" + password));
                objWebRequest.Headers[HttpRequestHeader.Authorization] = string.Format("Basic {0}", credentials);
                objWebRequest.Proxy = null;
                ServicePointManager.UseNagleAlgorithm = false;
                HttpWebResponse objWebResponse = (HttpWebResponse)objWebRequest.GetResponse();
                StreamReader objStreamReader = new StreamReader(objWebResponse.GetResponseStream());                      
                response = objStreamReader.ReadToEnd();
                objStreamReader.Close();

Удивительные вещи:

  • POSTMAN требуется около миллисекунды, чтобы получить ответ
  • curl on gitbash занимает миллисекунду, чтобы получить ответ
  • Windows Powershell занимает 15 секунд (так же, как консольное приложение) при первом получении ответа. Второй раз это занимает менее миллисекунды. [возможно через кеширование].

Не знаю, в чем проблема. Это проблема. NET?

или проблема с кодом?

...