2016-05-11 11 views
0

I次のコードを持っている:QNetworkAccessManagerは動作しません

MainWindow::MainWindow(QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::MainWindow), 
    m_networkAccessManager(new QNetworkAccessManager(this)) 
{ 
    ui->setupUi(this); 

    connect(m_networkAccessManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyForGeoCoordinates(QNetworkReply*))); 
    getCoordinates(); 
} 

void MainWindow::getCoordinates() 
{ 
    std::string query = "http://maps.google.com/maps/api/geocode/json?address=warsaw&sensor=false&language=en"; 
    QNetworkRequest request(QUrl(QString::fromStdString(query))); 
    m_reply = m_networkAccessManager->get(request); 

    connect(m_reply, SIGNAL(finished()), this, SLOT(rep())); 
    connect(m_reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(slotError(QNetworkReply::NetworkError))); 
    connect(m_reply, SIGNAL(readyRead()), this, SLOT(rep())); 
} 

を、私はGoogleのサーバーにクエリーを送信し、応答を取得したいが、私は上記スロットの要求なしを送信しないとき呼び出すことはありません、私は何を間違えているのですか?そのアドレスをブラウザに置くとデータが得られます。

答えて

2

まあ、私はあなたの接続の間違いだと思います。彼らはの前にget()と呼ぶ必要があります。

+0

実際のオブジェクトでのみ接続が機能するので、私はそうは思わない。あなたの解決策では、私はconnect(null、SIGNAL(.....))しているので、エラー – bladzio

+0

Waitを返します。信号を受信するために何もしません – someoneinthebox

+0

m_networkAccessManager-> get()はサーバーに私の要求を送り、get()はシグナルを出すQNetworkReply objを返します。ネットワーク応答が完了すると、 はm_networkAccessManagerと同じです。返信パラメータは**の返信へのポインタを含んでいます(この返信は返信されません) – bladzio

関連する問題