crossplatform.ru

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


  Ответ в QBuffer и QHttp
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
sploid Дата 21.9.2008, 22:17
  два предолжения:

1.
if (postId == requestId)
    {
                QByteArray data;
        data = m_buffer.readAll();
        QString str(data);
        m_buffer.close();
        QMessageBox::warning(this,"Title",str);
        }


2. а ты не буфер подсовывай, а делай так:
при коннекте:
postId = http->request(m_header );
когда читаешь данные:
QByteArray data = http->readAll();
kalombo Дата 21.9.2008, 17:42
 
void HttpTester::httpRequestFinished(int requestId, bool error)
{
        if (requestId == getThemId)
    {
                 postId = http->request(m_header,0,&m_buffer); //m_buffer - QBuffer
        return;
        }
    if (postId == requestId)
    {
                QByteArray data;
        data = m_buffer.data();
        QString str(data);
        m_buffer.close();
        QMessageBox::warning(this,"Title",str);
        }
}

И в сообщение ерунда выводится, два квадратика и знак "меньше", сниффером смотрю - есть там ответ, состоящий из ни одной сотни символов. Я никак не могу понять, почему так происходит. Точно также использовал QBuffer в другой программе - всё работало. С горя пробовал вместо QBuffer использовать QTemporaryFile, результат отрицательный. Однако всё работает, если я делаю не http->request, а http->get, только через последний Куки то не передать, а мне их надо. Я просто не знаю, где можно поискать ошибку, может подскажете что еще можно попробовать сделать?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 27.4.2024, 19:58