Использовать WebClient.DownloadFile. Если вам нужен прокси, вы можете установить свойство Proxy вашего объекта WebClient.
Вот пример:
using (var client = new WebClient())
{
client.Proxy = new WebProxy("some.proxy.com", 8000);
client.DownloadFile("example.com/file.jpg", "file.jpg");
}
Вы также можете скачать файл по частям с помощью BinaryReader:
using (var client = new WebClient())
{
client.Proxy = new WebProxy("some.proxy.com", 8000);
using (var reader = new BinaryReader(client.OpenRead("example.com/file.jpg")))
{
reader.ReadByte();
reader.ReadInt32();
reader.ReadBoolean();
// etc.
}
}