2013-05-05 2 views
4

Есть ли способ увидеть данные, которые будут отправлены (или были отправлены) во время (или после) вызова на QNetworkAccessManager::post(QNetworkRequest,QByteArray) на стороне клиента?Доступ к данным QNetworkRequest до его отправки

Другими словами, я хотел бы видеть запрос необработанный HTTP в полном комплекте:

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

name=need&just=tosee 

ответ

1

Это было время, так как я должен был отлаживать мои просьбы и вещи могут быть изменены в 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; 
    ... 
}