C++ BlackBerry10中的Web服务
我现在正在用Cascades(C++编程语言)开发黑莓10应用程序。谁能告诉我如何在BlackBerry 10:Cascades中调用web服务?我只是个初学者,所以我什么都不懂。感谢您的回答使用Qt发送网络请求有几个活动部分。以下是Qt使用的示例:C++ BlackBerry10中的Web服务,c++,qt,blackberry-10,blackberry-cascades,C++,Qt,Blackberry 10,Blackberry Cascades,我现在正在用Cascades(C++编程语言)开发黑莓10应用程序。谁能告诉我如何在BlackBerry 10:Cascades中调用web服务?我只是个初学者,所以我什么都不懂。感谢您的回答使用Qt发送网络请求有几个活动部分。以下是Qt使用的示例: QNetworkAccessManager *manager = new QNetworkAccessManager(this); connect(manager, SIGNAL(finished(QNetworkReply*)),
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
}
然后使用managersget
方法传递QNetworkRequest
,您可以像在那里一样创建,也可以单独创建。就这样,这是一个将HTTP请求发送到http://qt-project.org
并返回一个包含页面数据的响应,您可以从那里扩展到获取JSON或XML之类的操作
示例来自:
在本例中,我将结果字符串作为信号发出,但如果您愿意,也可以直接使用reply->readAll()字符串
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();
}