Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
76 / 50 / 26
Регистрация: 22.02.2015
Сообщений: 306

Получить размер страницы html

30.06.2017, 18:23. Показов 1469. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем. Нужно скачать страницу, например, cyberforum.ru. Для этого мне нужно сначала узнать размер страницы, но его я никак не могу получить. На отправленый HEAD, мне приходит пакет, в котором нет content-length. Я думаю, что нужно правильно создать запрос, но как. До этого с http не работал.

Код
C++
1
sprintf( request, "HEAD %s HTTP/1.1\r\nHost: %s\r\nConnection: close\r\n\r\n", url, host );
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.06.2017, 18:23
Ответы с готовыми решениями:

Получить код html-страницы
Нужно через C++ получить код html-страницы по http/https.

Получить html код страницы с использованием сокетов
Здравствуйте люди добрые, я видел, что это возможно. Хочу повторить, но не могу struct addrinfo addr; struct addrinfo *urlAddr; ...

HTML как задать размер для каждой страницы отдельно
Нужна помощь, как в коде Html задать для каждой страницы отдельный размер. Вот на пример у меня на главной флеш, а на другой лекция...

7
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
30.06.2017, 19:15
Цитата Сообщение от DUMP Посмотреть сообщение
На отправленый HEAD, мне приходит пакет, в котором нет content-length
HEAD запрашивает только статусную строку HTTP и заголовки, тела страницы нет.
Пробуй вместо HEAD использовать GET. Это во-первых. А во-вторых, Content-Length
не обязан присутствовать, вместо него может быть так называемый 'chunked encoding' -
это когда тело ответа передается кусками и перед каждым куском вначале
указывается его длина, в байтах.
0
76 / 50 / 26
Регистрация: 22.02.2015
Сообщений: 306
30.06.2017, 19:46  [ТС]
Цитата Сообщение от Убежденный Посмотреть сообщение
передается кусками
Так оно и есть.
Transfer-Encoding: Chunked
Но как мне узнать, когда будет передан последний кусок данных ? Просто, если зациклить приём данных с сайта секундомера ( первый по запросу в гугле ) , то данные принимаются бесконечно: в какой-то момент принимаются одни и те же данные, что и на предыдущей итерации.
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
30.06.2017, 20:16
Лучший ответ Сообщение было отмечено DUMP как решение

Решение

Цитата Сообщение от DUMP Посмотреть сообщение
Но как мне узнать, когда будет передан последний кусок данных ?
После последнего куска данных будет идти 0.
См. пример в Википедии:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
HTTP/1.1 200 OK
Server: nginx/1.0.4
Date: Thu, 06 Oct 2011 16:14:01 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
X-Powered-By: PHP/5.3.6
 
23
This is the data in the first chunk
1A
and this is the second one
3
con
8
sequence
0
1
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
30.06.2017, 21:29
Убежденный, ... или не будет если действует соглашение о том что конец передачи = конец данных
0
76 / 50 / 26
Регистрация: 22.02.2015
Сообщений: 306
30.06.2017, 22:14  [ТС]
vxg, разве нет определённых стандартов, по которым всё работает ?
0
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
01.07.2017, 06:48
DUMP, есть, просто мне помнится что согласно этим стандартам конец данных может быть передан явно через нулевой размер порции или неявно через закрытие подключения - при этом остаётся загадкой были ли все данные реально переданы или был сбой связи
1
153 / 148 / 66
Регистрация: 20.02.2014
Сообщений: 556
04.07.2017, 16:53
DUMP, RFC http
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.07.2017, 16:53
Помогаю со студенческими работами здесь

Как в html/css увеличить шрифт автоматически под размер страницы
Доброй ночи! В данный момент пишу приложение под андроид, которое работает с игровыми карточками по типу настольных игр (действия,...

Как получить html страницы?
Здравствуйте, подскажите пожалуйста, как получить html код сайта при помощи С++ (компилятор g++) ?

Получить данные со страницы HTML
Открыл такую тему в ветке по Делфям, но потом понял, что наверное, не совсем там спросил. Продублирую здесь - возможно, кто-то поможет,...

Получить содержимое HTML-страницы
Добрый день, уважаемые участники сообщества! Есть HTML-код нескольких страниц. Мне не нужна разметка, я хочу получить текст (контент...

Получить html новой страницы
Здравствуйте! Я пишу макрос на VBA, который собирает нужные мне данные с сайта. Мой макрос заполняет параметры поиска и выводит...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru