Прочитать http-заголовки запросов (Qt / c ++)

Я пытаюсь прочитать http-заголовки запросов, которые я могу войти в файл журнала (используя Qt / c ++). Я могу прочитать заголовки ответа, используя следующий простой код:

QList<QByteArray> headerList = pReply->rawHeaderList();

foreach(QByteArray head, headerList)
{
qDebug() << head << ":" << pReply->rawHeader(head);
}

pReply->close();

Но пока мне не повезло с заголовками запросов. В поисках решения я наткнулся
эта почта: Читать полный HTTP-заголовок запроса; Но я не совсем понял, как добиться подобной функциональности с помощью Qt.

Я немного потерян. Как я должен идти об этом?

1

Решение

На самом деле rawHeader — это QPair класса QByteArray. Увидеть: RawHeader. Вы либо делаете для каждого с помощью RawHeader вместо QByteArray, либо просто перебираете список:

    QList<QByteArray> headerList = pReply->rawHeaderList();

for (int i = 0; i < rawHeaderList.count(); ++i) {
qDebug() << head << ":" << pReply->rawHeader(i);
}

pReply->close();
1

Другие решения

Прямого метода для получения заголовков запроса не существует, но вы можете получить список заголовков, перебрать их и сохранить в QVariantMap. Вот пример кода.

auto reqHeaderName = reply->request().rawHeaderList();
QVariantMap reqHeaders;
for (QString header : reqHeaderName)
{
reqHeaders.insert(header, reply->request().rawHeader(header.toUtf8()));
}
0

По вопросам рекламы [email protected]