我正在将一些网络代码从 QT 4.8.4 移植到 5.1.1,似乎遇到了一个我无法弄清楚的问题。
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 &'
这个让我同样困惑。我知道有一个使用 QUrlQuery * 的 setQuery 的重载,所以使用一个参数它假设 2 参数版本对我来说几乎没有意义。
如果有人可以阐明两者,或者两者中的任何一个,我将非常感激!