2011-03-14 4 views
0

Qt 4.7에서 Symbian 모바일 장치에서 httpget을 처리하려고합니다. Symbian 장치의 Qt에서 QNetworkAccessManager로 네트워크 세션 오류가 발생했습니다.

나는 윈도우와 심비안 에뮬레이터 그들은 모두 작업에서 프로그램을 테스트하지만 심비안 장치를하려고 할 때 오류 얻을 : 내가하려고하면

Network session error.

을 통해 httpget은 브라우저가 작동하는 Symbian 장치에서이 페이지를 볼 수 있습니다. replyFinished 여기

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 
} 

답변

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" 
} 
관련 문제