在黑莓10级联上创建一个HTTP通信

create a http communication on blackberry 10 cascade

本文关键字:一个 通信 HTTP 创建 级联      更新时间:2023-10-16

我是开发黑莓10级联的新手。我需要使用httpget来连接文件xml并从中获取数据以显示在列表上。有一个例子可以帮助我做http通信还是教程?所有的http通信链接,如https://developer.blackberry.com/cascades/documentation/device_platform/networking/tutorial_http_comm.html没有工作,我得到404

使用QNetworkAccessManager, QNetworkRequest和QNetworkReply类建立http连接

QNetworkAccessManager* netManager = new QNetworkAccessManager();
QUrl myurl(yourURL);
QNetworkRequest req(url);
QNetworkReply* ipReply = netManager->get(req);
connect(ipReply, SIGNAL(finished(QNetworkReply*)), this, SLOT(onReply(QNetworkReply*)));
}

在onReply槽中解析您的响应

if (reply) {
    if (reply->error() == QNetworkReply::NoError) {
        int available = reply->bytesAvailable();
        if (available > 0) {
            int bufSize = sizeof(char) * available + sizeof(char);
            QByteArray buffer(bufSize, 0);
            int read = reply->read(buffer.data(), available);
            response = QString(buffer);
        }
    } else {
        response =
                QString("Error: ") + reply->errorString()
                        + QString(" status:")
                        + reply->attribute(
                                QNetworkRequest::HttpStatusCodeAttribute).toString();
    }
    reply->deleteLater();
}

访问此页面获取更多信息

使用此代码…

QNetworkAccessManager* netManager = new QNetworkAccessManager();
        QUrl myurl("http://******");
        QNetworkRequest req(myurl);
    QNetworkReply* ipReply = netManager->get(req);
    QEventLoop eventLoop;
    QObject::connect(ipReply, SIGNAL(finished()), &eventLoop, SLOT(quit()));
    eventLoop.exec();
    std::cout << "finished" << std::endl; //request finished here
    requestFinished(ipReply);