Отправка информации заголовка HTTP с помощью Qt QNetworkAccessManager - PullRequest
4 голосов
/ 08 июля 2010

У меня есть следующий код, и я хотел бы добавить некоторую информацию заголовка HTTP вместе с вызовом.В любом случае, что я могу сделать это?

void NeoAPI::call(QString apiCall) {
    if (this->ApiCall.contains(apiCall)) {
        QNetworkAccessManager* manager = new QNetworkAccessManager(0);
        connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(netReplyFinished(QNetworkReply*)));
        QUrl url = this->ApiCall[apiCall];
        url.addQueryItem("memberid","76710"); // Set for backdoor debugging
        manager->get(QNetworkRequest(url));
    } else {
        this->requestResultText = QString("Call %1 doesn't exist").arg(apiCall);
    }
}

void NeoAPI::netReplyFinished(QNetworkReply *netReply) {
    if (netReply->error() == QNetworkReply::NoError) {
        this->requestResultText = netReply->readAll();
    } else {
        this->requestResultText = "API Call Failed";
    }
    QMessageBox messageBox;
    messageBox.setText(this->requestResultText);
    messageBox.exec();
    //delete netReply;
}

Кроме того, если бы я не использовал их внутри класса, что бы было this в connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(netReplyFinished(QNetworkReply*)));?

Спасибо!

1 Ответ

7 голосов
/ 08 июля 2010

Да, см. Документацию QNetworkRequest .

Вы захотите сделать что-то вроде:

QNetworkRequest request(url);
request.setHeader( QNetworkRequest::ContentTypeHeader, "some/type" );
request.setRawHeader("Last-Modified", "Sun, 06 Nov 1994 08:49:37 GMT");
manager->get( header );

Также, если бы яt используя их внутри класса, что бы это было в соединении (manager, SIGNAL (закончено (QNetworkReply *)), this, SLOT (netReplyFinished (QNetworkReply *)));быть?

Это не будет ничего.Чтобы подключить сигнал к слоту, этот слот должен быть функцией-членом какого-либо объекта.Праймер Qt для сигналов и слотов объясняет это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...