0

Qt 4.7 の Symbian モバイル デバイスで httpget を実行しようとしています。

Windows と Symbian エミュレーターでプログラムをテストしましたが、どちらも動作しますが、Symbian デバイスで試してみるとエラーが発生します。

ネットワーク セッション エラー。

Symbian デバイスでブラウザから httpget を実行しようとすると、動作し、ページが表示されます。

ネットワークコードは次のとおりです。

    QNetworkAccessManager *manager = new QNetworkAccessManager(this);
    connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
    manager->get(QNetworkRequest(QUrl(Consts::webserviceURL + Consts::servletLogin + "?"
                                      + Consts::username + "=" + username + "&"
                                      + Consts::password + "=" + password)));

返信は次のとおりです。

void LoginDialog::replyFinished(QNetworkReply* reply){
    qDebug() << "reply finished";

    if (reply->error()) {
          ui->lbl_loginerror->setText("server niet bereikbaar: " + reply->errorString());
          qDebug() << "server niet bereikbaar: " << reply->errorString();

    }
    else {
        ....

このすべての出力:

[Qt Message] reply finished
[Qt Message] server niet bereikbaar:  "Network session error."
  • 接続に問題はありません: ブラウザのテストは成功します
  • コードに問題はありません。エミュレータで動作するためです

私は何を間違えましたか?

編集

.proファイルに networkservices も追加しました。

symbian {
    TARGET.UID3 = 0xeeb46dc7
    TARGET.CAPABILITY += networkservices
    TARGET.EPOCSTACKSIZE = 0x14000
    TARGET.EPOCHEAPSIZE = 0x020000 0x800000
}
4

1 に答える 1

0

これを使用して解決しました:

QString DataConnector::get(QString path){
    QNetworkAccessManager NAManager;
    QUrl url (path);
    QNetworkRequest request(url);
    QNetworkReply *reply = NAManager.get(request);
    QEventLoop eventLoop;
    QObject::connect(reply, SIGNAL(finished()), &eventLoop, SLOT(quit()));
    eventLoop.exec();
    QString replyString = reply->readAll();
    return replyString;
}

そして、ファイルのsymbian:{}セクションに次の行を追加しました。.pro

symbian: {
    TARGET.CAPABILITY = "NetworkServices ReadUserData WriteUserData"
}
于 2011-03-16T11:55:37.993 に答える