Я пытаюсь прочитать http-заголовки запросов, которые я могу войти в файл журнала (используя Qt / c ++). Я могу прочитать заголовки ответа, используя следующий простой код:
QList<QByteArray> headerList = pReply->rawHeaderList();
foreach(QByteArray head, headerList)
{
qDebug() << head << ":" << pReply->rawHeader(head);
}
pReply->close();
Но пока мне не повезло с заголовками запросов. В поисках решения я наткнулся
эта почта: Читать полный HTTP-заголовок запроса; Но я не совсем понял, как добиться подобной функциональности с помощью Qt.
Я немного потерян. Как я должен идти об этом?
На самом деле 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();
Прямого метода для получения заголовков запроса не существует, но вы можете получить список заголовков, перебрать их и сохранить в QVariantMap. Вот пример кода.
auto reqHeaderName = reply->request().rawHeaderList();
QVariantMap reqHeaders;
for (QString header : reqHeaderName)
{
reqHeaders.insert(header, reply->request().rawHeader(header.toUtf8()));
}