gpt4 book ai didi

qt - 使用 Qt4 调用 REST 服务

转载 作者:太空宇宙 更新时间:2023-11-03 14:59:10 24 4
gpt4 key购买 nike

谁能告诉我一个使用 Qt4 调用 REST 服务的简单方法?我找不到任何关于如何执行此操作的体面文档。现在我有类似的东西:

int NetworkClient::attemptLogin( QString username, QString password, int & error ) {

QNetworkAccessManager *manager = new QNetworkAccessManager(this);

QObject::connect(manager, SIGNAL(finished(QNetworkReply *)), SLOT(slotRequestFinished(QNetworkReply *)));

QNetworkRequest request;
request.setUrl(QUrl("http://192.168.20.155:3000/api/rest/user?id=" + username));
request.setHeader(QNetworkRequest::ContentTypeHeader, "text/xml");

QNetworkReply *reply = 0;
reply = manager->get(request);

qDebug() << reply;

我离得还近吗?

这是我的调用代码:

void LoginWindow::attemptLogin() {
int loginError;

QString username = usernameField->text();
QString password = passwordField->text();

int minutes = net.attemptLogin( username, password, loginError );

if ( minutes ) {
attemptLoginSuccess( username, password, minutes );
} else {
attemptLoginFailure( loginError );
}
}

最佳答案

这是我的看法...

QNetworkReply* Gateway::performPost(QString service, QMap<QString, QString>params)
{
qDebug() << QString("Post with params #").append(service) << params;

//Initialize uri
QString uri = Gateway::SERVICE_BASE_URI;
QNetworkAccessManager oManager;

//Connect signal
connect(oManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(finished(QNetworkReply*)));

//Construct request
QUrl res = QUrl(
uri.append(service)
);

QUrl query;

QMapIterator<QString, QString> i(params);
while(i.hasNext()) {
i.next();
query.addEncodedQueryItem(QUrl::toPercentEncoding(i.key()), QUrl::toPercentEncoding(i.value()));
}

//Do request
QNetworkRequest postRequest = QNetworkRequest(res);

//Return QNetworkReply Object
return oManager.post(postRequest, query.encodedQuery());
}


//Implementation
QMap<QString,QString> map;

map.insert("foo", "bar");
map.insert("bar", "foo");

//Perform the POST request
oGateway.performPost("foo/bar", map);

关于qt - 使用 Qt4 调用 REST 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25080747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com