我正在將一些網絡代碼從QT 4.8.4移植到5.1.1,似乎遇到了一個我無法弄清楚的問題。QT 5.1.1 - 在Post請求中設置urlQuery的問題
QUrl postURL = QUrl("https://www.mywebsite/api");
QUrlQuery * reqParams = new QUrlQuery();
reqParams->addQueryItem("realEmail", email_lineEdit->text());
reqParams->addQueryItem("password", password_lineEdit->text());
reqParams->addQueryItem("confirmPassword", passConfirm_lineEdit->text());
reqParams->addQueryItem("firstName", firstName_lineEdit->text());
reqParams->addQueryItem("lastName", lastName_lineEdit->text());
reqParams->addQueryItem("termsAccepted", "1");
postURL.setQuery(reqParams);
QNetworkRequest netReq(postURL);
netReq.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
QSslConfiguration config = QSslConfiguration::defaultConfiguration();
config.setProtocol(QSsl::SslV3);
netReq.setSslConfiguration(config);
netReply = netManager->post(netReq);
編譯這會給我兩個錯誤。首先,'QNetworkAccessManager::post' : no overloaded function takes 1 arguments
我不知道如何解決這個問題,因爲我不需要添加任何發佈數據,它包含在QUrlQuery中,因爲我在這個印象之下這是正確的做法。
我的第二個錯誤,'void QUrl::setQuery(const QString &,QUrl::ParsingMode)' : cannot convert parameter 1 from 'QUrlQuery *' to 'const QString &'
這其中有我一樣困惑。我知道那裏是setQuery的過載,需要一個QUrlQuery *,這樣一個參數的假設2參數版本的事實使得幾乎沒有了意義。
如果任何人都可以闡明兩者或兩者之一的事情,我會非常感激!