Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
1 / 1 / 1
Регистрация: 02.12.2009
Сообщений: 50
1

Хочу скачать с файлообменника...

18.04.2011, 16:07. Показов 1544. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Прошу помощи. Написал класс для скачивания файла с файлообменника в моем случаи sendspace.com.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
public static class DownloadSendspace
    {
        private static CookieCollection Cooks = new CookieCollection();
 
        private static string Request_Post(string url)
        {
            HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
            httpWebRequest.AllowAutoRedirect = true;
            httpWebRequest.CookieContainer = new CookieContainer();
            httpWebRequest.Method = "POST";
            httpWebRequest.ContentType = "application/x-www-form-urlencoded";
            byte[] ByteQuery = System.Text.Encoding.ASCII.GetBytes("download=%C2%A0REGULAR+DOWNLOAD%C2%A0");
            httpWebRequest.ContentLength = ByteQuery.Length;
            Stream QueryStream = httpWebRequest.GetRequestStream();
            QueryStream.Write(ByteQuery, 0, ByteQuery.Length);
            QueryStream.Close();
            HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            httpWebResponse.Cookies = httpWebRequest.CookieContainer.GetCookies(httpWebRequest.RequestUri);
            if (httpWebResponse.Cookies != null)
            {
                Cooks.Add(httpWebResponse.Cookies);
            }
            Stream stream = httpWebResponse.GetResponseStream();
            StreamReader reader = new StreamReader(stream);
            return reader.ReadToEnd();
        }
 
 
        public static bool Download(string url_file, string saving_path)
        {
 
            string s = Request_Post(url_file);
 
            string Pattern = "downlink.*onclick";
            Match match = Regex.Match(s, Pattern);
 
            if (match.Success == false) return false;
 
            s = match.Value;
 
 
            Pattern = "http.*\x22";
            match = Regex.Match(s, Pattern);
 
            if (match.Success == false) return false;
 
            s = match.Value;
            s = s.Remove(s.Length - 1, 1);
 
            using (WebClient wClient = new WebClient())
            {
                Uri url = new Uri(s);
                wClient.DownloadFileAsync(url, saving_path);
            }
 
            return true;
        }
 
    }
вызываю его DownloadSendspace.Download("http://www.sendspace.com/file/61egp2", "f.txt");

Специфика такая что вначале нужно послать POST запрос он вернет хтмл-буфер в нем нахожу нужный линк и по нем уже начинаю скачку. Но при запросе страница почемуто не отдается вся целиком а только половина. В чем может быть косяк?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.04.2011, 16:07
Ответы с готовыми решениями:

Скачать файл с файлообменника
Ребята привет! Я ваш постоянный клиент! Скажите пожалуйста, как можно или если это вообще возможно...

Скачать файл с файлообменника Delphi
Здравствуйте. Тут такое дело: нужно скачать файл с файлообменника. неважно с какого, лишь бы...

Не могу скачать пару архивов с файлообменника
Купил курс по созданию 3д коробок для дисков, Ссылка: http://l.bitcasa.com/rNMYBxel Сам курс весит...

Хочу скачать музыку, а открывается QuickTime
Хочу скачать музыку ,а открывается QuickTime

1
1 / 1 / 1
Регистрация: 02.12.2009
Сообщений: 50
19.04.2011, 18:37  [ТС] 2
Что никто не знает?

суть проблемы в том что недохгружается весь хтмл текст который должен быть
пробовал разные примеры...

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
        private static string Request_Post(string uri, string parameters)
        {
            // parameters: name1=value1&name2=value2    
            WebRequest webRequest = WebRequest.Create(uri);
            //string ProxyString = 
            //   System.Configuration.ConfigurationManager.AppSettings
            //   [GetConfigKey("proxy")];
            //webRequest.Proxy = new WebProxy (ProxyString, true);
            //Commenting out above required change to App.Config
            webRequest.ContentType = "application/x-www-form-urlencoded";
            webRequest.Method = "POST";
            byte[] bytes = Encoding.ASCII.GetBytes(parameters);
            Stream os = null;
            try
            { // send the Post
                webRequest.ContentLength = bytes.Length;   //Count bytes to send
                os = webRequest.GetRequestStream();
                os.Write(bytes, 0, bytes.Length);         //Send it
            }
            catch (WebException ex)
            {
                MessageBox.Show(ex.Message, "HttpPost: Request error",
                   MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                if (os != null)
                {
                    os.Close();
                }
            }
 
            try
            { // get the response
                WebResponse webResponse = webRequest.GetResponse();
                if (webResponse == null)
                { return null; }
                StreamReader sr = new StreamReader(webResponse.GetResponseStream());
                return sr.ReadToEnd().Trim();
            }
            catch (WebException ex)
            {
                MessageBox.Show(ex.Message, "HttpPost: Response error",
                   MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            return null;
        }

параметры такие - string s = Request_Post(url_file, "download=%C2%A0REGULAR+DOWNLOAD%C2%A0");
это тоже не работает. помогите плиз!

Добавлено через 1 час 16 минут
Нашел где косяк. Сам тупил.. вернее снифер бажный и показывал не весь буфер.
тему закрыть можно.
0
19.04.2011, 18:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.04.2011, 18:37
Помогаю со студенческими работами здесь

в DepositFiles когда хочу скачать выходит тоблица
в ************ когда хочу скачать выходит тоблица "у вас исчерпен лимит" или "с вашего сервера уже...

Я хочу скачать pygame с сайта, но у мя характеристики компа другие
Вот с этого сайта хочу скачать Пигэйм: https://pypi.python.org/pypi/Pygame/1.9.3 У меня: 1)...

Хочу скачать хорошую windows 7 максимальную х64/х86
Хочу скачать хорошую windows 7 максимальную х64/х86. Искал в интернете не нашел. Кто может киньте...

хочу начать программировать на 1С где мне скачать 1С программирование?
хочу начать программировать на 1С где мне скачать 1С программирование?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru