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