0

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

4

2 回答 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 回答