我现在正在使用 Cascades(C++ 编程语言)开发 BlackBerry 10 应用程序。谁能告诉我如何在 BlackBerry 10: Cascades 中调用网络服务?我只是一个初学者,所以我真的什么都不懂。感谢您的回答
问问题
215 次
2 回答
1
void GetWeb::start(const QString &str)
{
QNetworkRequest request = QNetworkRequest();
request.setUrl(QUrl(str));
QNetworkAccessManager *networkAccessManager = new QNetworkAccessManager(this);
connect(networkAccessManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(requestFinished(QNetworkReply*)));
networkAccessManager->get(request);
}
void GetWeb::requestFinished(QNetworkReply* reply)
{
if (reply->error() == QNetworkReply::NoError)
{
emit complete(reply->readAll());
}
reply->deleteLater();
}
在这种情况下,我将生成的字符串作为信号发出,但如果您愿意,也可以直接使用 reply->readAll() 字符串...
于 2013-10-30T02:27:47.810 回答
0
使用 Qt 发送网络请求有几个活动部分。这是 Qt 使用的示例:
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)),
this, SLOT(replyFinished(QNetworkReply*)));
manager->get(QNetworkRequest(QUrl("http://qt-project.org")));
所以你要做的是创建一个QNetworkAccessManager
对象,它处理发送请求和处理响应的实际过程。然后,您将管理器在完成时发出的信号连接QNetworkRequest
到您创建的称为调用的插槽,该插槽replyFinished
作为QNetworkReply *
参数,可能如下所示:
void MyClass::replyFinished(QNetworkReply *serverResponse)
{
//do something with the response
}
然后,您使用 managerget
方法传递您的QNetworkRequest
,您可以像以前那样创建它,也可以单独创建它。就是这样,这是一个最小的示例,它将向页面发送 HTTP 请求http://qt-project.org
并返回包含来自页面的数据的响应,您可以从那里扩展来执行诸如获取 JSON 或 XML 之类的事情。
示例来自:QtNetwork 文档
于 2013-10-29T10:53:01.497 回答