使用来自Blackberry 10应用程序的RestFul Api

时间:2013-07-26 07:26:50

标签: blackberry blackberry-10 blackberry-cascades

我是BlackBerry 10开发的新手,我正在尝试从RESTful服务中获取数据,但我不知道我该怎么做...如果有人可以帮助我,那就太好了。我已经阅读了有关Blackberry文档中的网络访问的所有文档,但我无法得到它如何开始,我尝试了一些示例,但它并没有解决我的问题。请帮帮我......

谢谢..

app.cpp

void ApplicationUI::initiateRequest(){
    // Start the activity indicator.
    myActivityIndicator->start();
    myLabel->setVisible(true);
    myLabel->setText("Retrieving contact list ...");
    // Create and send the network request.
    QNetworkRequest request = QNetworkRequest();
    request.setUrl(QUrl("http://developer.blackberry.com/cascades/files/documentation/images/model.xml"));
    myNetworkAccessManager->get(request); 
}

void ApplicationUI::requestFinished(QNetworkReply* reply)
{
    myActivityIndicator->stop();
    myLabel->setVisible(false);

    // Check the network reply for errors.
    if (reply->error() == QNetworkReply::NoError)
    {
        // Open the file and print an error if the file cannot be opened.
        if (!myFile->open(QIODevice::ReadWrite))
        {
            // Report: "Failed to open file"
            return;
        }

        // Write to the file using the reply data and close the file.
        myFile->write(reply->readAll());
        myFile->flush();
        myFile->close();

        // Create the data model using the contents of the file.
        XmlDataModel *dataModel = new XmlDataModel();
        dataModel->setSource(QUrl("file://" + QDir::homePath() + "/model.xml"));

        // Set the new data model on the list.
        myListView->setDataModel(dataModel);
    }
    else
    {
        myLabel->setText("Problem with the network");
    }

    reply->deleteLater();
}

main.qml

Page {
    Container {
            id: cntrListview

            // A list that has two list item components, one for a header
            // and one for contact names. The list has an object name so
            // that we can set the data model from C++ code.
            ListView {
                objectName: "list"
                topPadding: 6.0
                bottomPadding: 6.0
                leftPadding: 6.0
                rightPadding: 6.0

                // The app loads an XML file called model.xml that is used
                // as the data model for the ListView to populate our
                // contact list. This XML file is downloaded in our
                //  app's constructor in the accompanying C++ code.
                dataModel: XmlDataModel {
                }
                listItemComponents: [
                    // The header list item displays a title along with a counter
                    // that displays the number of children. Each child is a name
                    // in the contact list.
                    ListItemComponent {
                        type: "header"
                        Header {
                            title: ListItemData.title
                            subtitle: (ListItem.initialized ? ListItem.view.dataModel.childCount(ListItem.indexPath) : 0)
                        }
                    },
                    // The contact list item displays the name of the contact.
                    ListItemComponent {
                        type: "contacts"
                        StandardListItem {
                            title: ListItemData.title
                        }
                    }
                ]
            }
        }
}

这是我尝试过的,但我的Rest Resturns JSON数据,我想得到它,但我不知道如何,我尝试了上面的示例来获取任何想法,但我无法得到它,我是新手......

请帮帮我..谢谢......

1 个答案:

答案 0 :(得分:1)

如果问题只是您正在阅读JSON,但您的代码适用于XML,那么您必须用XmlDataModel填充GroupDataModel来填充JsonDataAccess。您需要的所有内容都记录在案here