在发送之前访问QNetworkRequest数据

6 c++ qt qt4 qtnetwork qnetworkrequest

有没有办法看到QNetworkAccessManager::post(QNetworkRequest,QByteArray)在客户端呼叫期间(或之后)发送(或已发送)的数据?

换句话说,我希望看到完整的原始HTTP请求:

POST /somepage.php HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 19

name=need&just=tosee
Run Code Online (Sandbox Code Playgroud)

Dan*_*erg 10

自从我不得不调试我的请求以来已经有一段时间了,Qt 中的事情可能已经发生了变化,但是我必须使用各种函数访问请求的不同部分才能获得所有详细信息。

我为 post 函数创建了一个包装器,它会在发布请求之前打印详细信息。这是一个提取和打印 URL、原始标题和数据的代码片段,例如:

void debugRequest(QNetworkRequest request, QByteArray data = QByteArray())
{
  ...
  qDebug() << request.url().toString();
  const QList<QByteArray>& rawHeaderList(request.rawHeaderList());
  foreach (QByteArray rawHeader, rawHeaderList) {
    qDebug() << request.rawHeader(rawHeader);
  }
  qDebug() << data;
  ...
}
Run Code Online (Sandbox Code Playgroud)