Большинство ваших требований могут быть обработаны с помощью класса System.Net.WebClient
. Единственный важный момент - какое серверное программное обеспечение использует сайт. Даже если вы запускаете что-то, напрямую запрашивающее сервер, вы не можете точно сказать, какое серверное программное обеспечение оно использует, потому что это программное обеспечение обычно можно настроить так, чтобы оно лгало вам, сообщало вам и имитировало ответ другой распространенной марки сервера. И хотя ложь не распространена, это не неслыханно (некоторые считают, что это лучший способ избавиться от крекеров).