Russian Qt Forum
Ноябрь 23, 2024, 17:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] открытие сайта без отображения, не через вебВьюв  (Прочитано 6080 раз)
woka
Гость
« : Апрель 16, 2012, 15:11 »

мне нужно зайти на сайт! это всё что нужно. ничего показывать не надо. просто отправить запрос.

подскажите как лучше реализовать. можно через вебВьюв, но это сильно тяжёлая конструкция. может есть какие то более простые способы? через сокеты как я понял не получится т. к. надо чтобы на той стороне его слушали мой сокет.
« Последнее редактирование: Апрель 20, 2012, 04:09 от woka » Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Апрель 16, 2012, 15:14 »

см. QNetworkAccessManager + QNetworkReply.
Записан

Qt 5.11/4.8.7 (X11/Win)
woka
Гость
« Ответ #2 : Апрель 16, 2012, 19:39 »

Код:
QNetworkAccessManager * nam = new QNetworkAccessManager(this);
QString URLaddress("http://google.com");
QUrl url(URLaddress);
QNetworkReply* reply = nam->get(QNetworkRequest(url));
или
Код:
 manager->get(QNetworkRequest(QUrl("http://google.com")));
вроде бы и пишет что зашло, но по факту никуда не заходило. на сервере нет в логах
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Апрель 16, 2012, 20:15 »

Внимательно читаем это.
Там же обращаем внимание на это:
Цитировать
QNetworkAccessManager имеет асинхронный API. Когда слот replyFinished будет вызван, то принимаемый им параметр будет объект QNetworkReply, содержащий скачанные данные и метаданные (заголовки и т.д.).
Записан

Qt 5.11/4.8.7 (X11/Win)
woka
Гость
« Ответ #4 : Апрель 16, 2012, 21:39 »

ну да, он это скачивает. но это не фиксируется как посещение страницы. и вопрос остаётся прежним. как сделать чтобы фиксировалось.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #5 : Апрель 16, 2012, 22:33 »

ну да, он это скачивает. но это не фиксируется как посещение страницы. и вопрос остаётся прежним. как сделать чтобы фиксировалось.

Сервер умеет отличать роботов от людей, скорее всего по HTTP заголовкам. Пробуй передавать разные User-Agent через QNetworkRequest::setRawHeader()
Записан
woka
Гость
« Ответ #6 : Апрель 17, 2012, 00:11 »

пробовал разные запросы. ничего не помогает. подскажите может у кого был опыт с этим делом. как поступить нужно
Записан
Bepec
Гость
« Ответ #7 : Апрель 17, 2012, 07:27 »

Поставить сниффер у себя на компе и посмотреть разницу между обычным заходом на сайт и отправкой с помощью менеджера.
Записан
woka
Гость
« Ответ #8 : Апрель 20, 2012, 04:08 »

что самое интересное это здесь не к чему. достаточно сделать запрос
Код:
    url = QUrl("http://prog.org.ru");

    reply = nam.get(QNetworkRequest(url));
и он делает всё что нужно было.  в предыдущих примерах как то неправильно был составлен запрос. потому что сразу при запуске приложение вылетало с ошибкой.  причём пример был и с документации. этот кусок кода я нарыл в примерах "http". спасибо всем
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 22.