понедельник, 4 апреля 2016 г.

C#: скачиваем файлы из Интернет


Пример кода для простого скачивания файлов из Интернет (например файла http://stroustrup.com/Programming/PPP2code/std_lib_facilities.h). Сетевые настройки при этом считываются из настроек Internet Explorer.




static void Main(string[] args) {
    String file_name = Path.GetRandomFileName();
    String full_path = Environment.ExpandEnvironmentVariables(
        Path.Combine(@"%LocalAppData%\Temp", file_name));

    using (WebClient client = new WebClient()) {
        String uri = "http://stroustrup.com/Programming/PPP2code/std_lib_facilities.h";
        var proxyUri = WebRequest.GetSystemWebProxy()
            .GetProxy(new Uri(uri));
        client.Proxy = new WebProxy(proxyUri);
        client.Proxy.Credentials = CredentialCache.DefaultCredentials;
        try {
            client.DownloadFile(uri, full_path);
        }
        catch (Exception ex) {
            Console.WriteLine(ex.Message);
        }
    }
    Console.WriteLine("The result file: {0}", full_path);
    Console.WriteLine("Press any key for exit.");
    Console.ReadKey();
}



2 комментария:

Boxa комментирует...

Есть ограничение, с Socks4(5) прокси это работать не будет.
Нужно было слить базу сайта и чтоб не палить свой IP, пользовался Tor, а он как раз Socks5. Поиски решения привели к библиотеке xNet. Задача была выполнена успешно.

Boxa комментирует...

Забыл добавить ссылку: https://habrahabr.ru/post/146475/