У меня есть API на основе HTTP, который мне потенциально нужно вызывать много раз. Проблема в том, что я не могу получить запрос менее чем за 20 секунд, хотя тот же запрос, сделанный через браузер, почти мгновенный. Следующий код иллюстрирует, как я реализовал это до сих пор.
WebRequest r = HttpWebRequest.Create("https://example.com/http/command?param=blabla");
var response = r.GetResponse();
Одним из решений было бы сделать асинхронный запрос, но я хотел бы знать, почему это занимает так много времени и могу ли я его избежать. Я также пытался использовать класс WebClient, но подозреваю, что он использует WebRequest для внутреннего использования.
Обновление:
Выполнение следующего кода заняло около 40 секунд в режиме разблокировки (измерено с помощью секундомера):
WebRequest g = HttpWebRequest.Create("http://www.google.com");
var response = g.GetResponse();
Я работаю в университете, где в конфигурации сети могут быть разные вещи, влияющие на производительность, но прямое использование браузера показывает, что оно должно быть почти мгновенным.
Обновление 2:
Я загрузил код на удаленную машину, и он работал нормально, поэтому следует сделать вывод, что код .NET делает что-то дополнительное по сравнению с браузером или имеет проблемы с разрешением адреса через университетскую сеть (проблемы с прокси-сервером или что-то в этом роде ?! ).