C++ BlackBerry10中的Web服务

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*)),

我现在正在用Cascades(C++编程语言)开发黑莓10应用程序。谁能告诉我如何在BlackBerry 10:Cascades中调用web服务?我只是个初学者,所以我什么都不懂。感谢您的回答

使用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
}
然后使用managers
get
方法传递
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();
}