Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/14: Рейтинг темы: голосов - 14, средняя оценка - 4.93
 Аватар для breate
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250

HTTP vs QT on Linux

27.12.2009, 18:29. Показов 2693. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
может кто сталкивался ткните носом в следующие вопросы
1. формирование QNetworkRequest так что бы скачивание файла было с определенной позиции
2. разбор синтаксиса ссылки типа http://site.com/?adofoa%gdvgw%fdv%231 - это насколько я понимаю скрипт какой то - любой подсказке в сторону раскопок буду рад

я верю в великий гугл но, может кто поможет найти какую нибудь документацию по работе с протоколом HTTP на уровне Linux API

заранее благодарен
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.12.2009, 18:29
Ответы с готовыми решениями:

Linux, Падает Http
Суть: регулярно падает процесс http. Внешний эффект как от sudo killall http - процесс отсутсвует в списке запущенных ( ps -u notes ), 80-й...

Linux, HTTP сервер
Пишу HTTP-сервер на данный момент, задача по учебе, поэтому boost и прочие дополнительные библиотеки использовать не могу. Хочется, чтобы...

Ограничение прав доступа к служебным папкам и файлам по http, Symfony2, Linux
Здравствуйте. Подскажите пожалуйста, как лучше всего ограничить для пользователя доступ к служебным файлам Symfony? Вот, к примеру,...

3
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
27.12.2009, 23:03
1.
Можно использовать фичу протокола HTTP - выставить дополнительный заголовок.
Код не мой
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void Thread::run()
{
    QString byte;
    QString num;
 
    byte+= "bytes=";
    byte+= num.setNum(begin);
    byte+= "-";
    byte+=num.setNum(end);
 
    QNetworkRequest request;  // Формируем запрос
    request.setUrl(QUrl(link));
    request.setRawHeader("Range",byte.toLocal8Bit().data()); // задаём размер фрагмента
 
    reply = manager->get(request); //Отправляем запрос
    reply->setReadBufferSize(500); //Устанавливаем буфер
    connect(reply,SIGNAL(readyRead()),this,SLOT(readyReal()));
 
}
Добавлено через 54 секунды
2. QUrl чем не подходит ?

Добавлено через 33 секунды
А что есть Linux API ?
man socket() точно поможет
1
 Аватар для breate
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250
28.12.2009, 18:32  [ТС]
QUrl - я ещё не натестировался тем кодом который написал но по таким ссылка название файлов он определяет неправильно

Добавлено через 39 минут
http://stg530.ifolder.ru/downl... TWuXyGk%3D

по этой ссылке находится файл если его отдать в QNeaworkAccessManager то он выдает ошибку в этом загвоздка, может имеет смысл сначала отправить его в QHttp ?

Добавлено через 3 часа 30 минут
QHttp со стандартным запросом ничего не дал т.е на запрос "GET" получил 403

Добавлено через 40 минут

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void MainWindow::push()
{
QNetworkRequest rec;
rec.setRawHeader("GET","download/?15601599&0jQ6ARzHEYyowoFLW%2BHSUykGrFS0NDAdF%2BIPTWuXyGk%3D HTTP/1.0");
rec.setRawHeader("Connction:","Keep-Alive");
rec.setRawHeader("User-Agent:","Zakachaika (Ubuntu; I)");
rec.setRawHeader("Host:","stg530.ifolder.ru");
QNetworkAccessManager *manager=new QNetworkAccessManager (this);
file.setFileName("hervam.bty");
file.open(QIODevice::WriteOnly);
rep=manager->get(rec);
connect(rep,SIGNAL(readyRead()),this,SLOT(print()));
}
 
void MainWindow::print()
{
file.write(rep->readAll());
}
файл пуст

Добавлено через 8 минут
чувствую всему виной Cookie

Добавлено через 9 часов 10 минут
следующий код даёт ошибку авторизации

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void MainWindow::push()
{
QUrl url(ui->lineEdit->text());
QNetworkRequest rec(QUrl(
        "http://stg530.ifolder.ru/download/?15601599&0jQ6ARzHEYyowoFLW%2BHSUykGrFS0NDAdF%2BIPTWuXyGk%3D"));
QNetworkAccessManager *manager=new QNetworkAccessManager (this);
QList<QNetworkCookie> a;
manager->cookieJar()->setCookiesFromUrl(a,
                                        QUrl(
          "http://stg530.ifolder.ru/download/?15601599&0jQ6ARzHEYyowoFLW%2BHSUykGrFS0NDAdF%2BIPTWuXyGk%3D")
                                        );
file.setFileName("hervam.bty");
file.open(QIODevice::WriteOnly);
rep=manager->get(rec);
connect(rep,SIGNAL(readyRead()),this,SLOT(print()));
}
 
void MainWindow::print()
{
file.write(rep->readAll());
}
тобишь вся проблема в Cookie - может кто знает как накормить сервер печеньем?

Добавлено через 1 час 53 минуты
труд дал свои плоды в ответ я получаю сообщение 202 и что дальше не знаю подскажите пожалуйста?

Добавлено через 3 часа 15 минут
У меня такой вопрос интерестный созрел, а может ли быть проблема в USER AGENT: ?

Добавлено через 1 минуту
как посмотреть заголовки отправления получения информации?
0
 Аватар для breate
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250
29.12.2009, 19:05  [ТС]
Эх мои поиски пользы не дали, не смотря на то, что в документации написано : "QNetworkAccessManager работает с куками" - это лож! не со всеми куками он работает!, а все 100% работающие примеры уходят в QWebKit, в общем я растроен, из-за того, что всё так инкапсулировано, что до живых данных не добратся!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.12.2009, 19:05
Помогаю со студенческими работами здесь

Простой сервлет HTTP Status 405 - HTTP method GET is not supported by this URL
Здравствуйте,начал изучение сервлетов.Делал все последовательно как в примере http://devcolibri.com/4284,пока еще без создания jsp файла...

HTTP запрос через Apache HTTP Client ничего не возвращает
У меня есть один сайт. Простой сайт на php. И есть второй сайт, где используется java на JBoss. Я хочу сделать так, чтобы при заходе...

Как добавить http авторизацию (http authorization header) при работе с web-сервисом?
Добрый день! Проблема такая. Есть веб-сервис который при подключения требует авторизацию. Скачал wsdl, создал pas. Но для авторизации...

www-http сниффер. Как отследить HTTP запросы?
Посмотрел я вот эту статью: http://www.cyberguru.ru/cpp-sources/network/primer-prostejshego-sniffera-dlya-windows-2000/xp.html ...

The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content
И так: 1. Один из наших админов сменил 2000 на 2003 (asp) 2. Все работает, НО на одной из задач появился глюк: - The HTTP headers...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru