黑莓10中的Web服务

时间:2013-10-29 10:10:48

标签: c++ qt blackberry-10 blackberry-cascades

我正在使用Cascades(C ++编程语言)开发BlackBerry 10应用程序。任何人都可以告诉我如何在BlackBerry 10中调用Web服务:Cascades?我只是一个初学者,所以我什么都不知道。谢谢你的回答

2 个答案:

答案 0 :(得分: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()字符串...

答案 1 :(得分: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
}

然后,您可以使用管理员get方法传递您可以创建的QNetworkRequest,或者单独创建。{1}}。这就是它,这是一个最小的例子,它将向http://qt-project.org发送HTTP请求并返回包含页面数据的响应,您可以从那里扩展以执行诸如获取JSON或XML之类的操作。

示例来自:QtNetwork documentation