crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> использование QNetworkAccessManager
eldar85
  опции профиля:
сообщение 11.8.2010, 13:24
Сообщение #11


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

Спасибо сказали: 0 раз(а)




Репутация:   0  


да такое я пробывал
void network::readyReadReply()
{
    buffer = QString::fromUtf8(reply->readAll());
    emit pMainClassObj->slot_GotNewData(buffer);
}

не помогает...

а про atd::map<время,QString> m_RequestList; я не понял, как это?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 11.8.2010, 13:33
Сообщение #12


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


когда отправляешь запросы, складываешь их в список. Когда станут приходить ответы - надо будет сопоставить ответ с запросом и обработать

блин, там std, а не atd

Сообщение отредактировал Алексей1153 - 11.8.2010, 16:44
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
eldar85
  опции профиля:
сообщение 11.8.2010, 14:18
Сообщение #13


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

Спасибо сказали: 0 раз(а)




Репутация:   0  


как все неудобно(( я думал перейтис cUrl на Qt шные методы работы с сетью будет удобнее, но оказалось все вообще стремно в библиотеке QNetwork либо просто по другому как то делать нужно...
по идее я хотел чтобы я мог в главном методе start() вызвать к примеру загрузку одной страницы, затем в этом же старте получив ответ от сервера в строку получить нужные данные тут же start() отправить пост запрос с полученными данными от первой загрузки и так далее... но получается одна ерунда, единственное что получилось вызвать в главном методе загрузку страницы с сервера и слотом поместить ее в переменную но только после того как произведен выход из start() и exec(). а мне нужно чтобы в start() вызвалось exec() затем дождалось окончания загрузки, получило ответ от exec() и только потом тут же в start() начало действие дальше как в обычном с++ когда вызываешь из одной функции другую функцию то первая не завершает работу пока функция вызванная внутри нее не завершит работу...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 11.8.2010, 14:27
Сообщение #14


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Ты про синхронную загрузка?
На форуме были темы в которых этот способ обсуждался. Поищи.
Посмотри на класс QEventLoop.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
eldar85
  опции профиля:
сообщение 11.8.2010, 15:48
Сообщение #15


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

Спасибо сказали: 0 раз(а)




Репутация:   0  


решил задачу с помощью простого цикла))))
QString network::exec()
{
    
    
    manager = new QNetworkAccessManager;
    QNetworkRequest request;
    request.setUrl(QUrl(Url));
    reply = manager->post(request, postdata);
    
    
    
    connect(reply, SIGNAL(finished()), this, SLOT(getReplyFinished()));
    connect(reply, SIGNAL(readyRead()), this, SLOT(readyReadReply()));
    
    while(buffer == "")
    {
        qApp->processEvents();
    }
    
    
    return buffer;
    
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 11.8.2010, 16:46
Сообщение #16


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


eldar85, не во всякой задаче удасться так сделать :)

Ну а в твоём решении ещё не помешало бы таймаутом задаться, а то навсегда может зависнуть

Сообщение отредактировал Алексей1153 - 11.8.2010, 16:47
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
eldar85
  опции профиля:
сообщение 11.8.2010, 17:28
Сообщение #17


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

Спасибо сказали: 0 раз(а)




Репутация:   0  


да я подкоректировал немного с таймаутом...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V  < 1 2
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.4.2024, 22:43