Он зависает, потому что код ответа не был получен в потоке байтов.Вы захотите взглянуть на отладчик http и посмотреть, что на самом деле было получено, если вообще что-то есть.Однако, похоже, что он открыл TCP-соединение с сервером.Ему может не понравиться ваш пользовательский агент (который, возможно, не был настроен так, как вы думаете), или метод запроса HEAD
, или это может быть сервер с ограниченной пропускной способностью.Вы можете использовать класс Socket
, чтобы просто открыть соединение и подготовить байты вручную, чтобы увидеть, что вы получаете / не получаете.
Кстати, использование только Socket
на самом деле не является плохим подходом в зависимости от того, что вы хотите сделать .Это звучит , как будто вы пишете средство проверки http-сервера, и в этом случае вы получите больше функциональности от непосредственного использования Socket
, поскольку вы сможете разрабатывать более совершенные и гораздо более оптимизированные методы (вы работаетев конце концов, с большим объемом низкоуровневой сети).