Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие _ QBuffer и QHttp

Автор: 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, только через последний Куки то не передать, а мне их надо. Я просто не знаю, где можно поискать ошибку, может подскажете что еще можно попробовать сделать?

Автор: 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();

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)