2013-10-04 2 views
-1

Я хочу получить POST некоторую информацию в php и получить результат с этого php. Моя почта должна выглядеть следующим образом: www.sample.com/test.php?un=user & проход = 123345 Я пытаюсь все варианты без успеха:Правильное использование QNetworkAccessManager

m_NetworkAccessMNGR = new QNetworkAccessManager(this); 
connect(m_NetworkAccessMNGR, SIGNAL(finished(QNetworkReply*)), 
     this,SLOT(slotFinishRequest(QNetworkReply*))); 
QNetworkRequest networkRequest; 
networkRequest.setUrl(QUrl("http://www.sample.com/test.php?un=user&pass=123345")); 

QNetworkReply *reply = m_NetworkAccessMNGR->get(networkRequest); 

connect(reply, SIGNAL(readyRead()), 
     this, SLOT(slotReadyRead())); 
connect(reply, SIGNAL(finished()), 
     this, SLOT(slotOnRequestCompleted())); 
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), 
     this, SLOT(slotOnRequestError(QNetworkReply::NetworkError))); 
connect(reply, SIGNAL(sslErrors(QList<QSslError>)), 
     this, SLOT(slotSslErrors(QList<QSslError>))); 

Код не выполняет какой-либо из них слоты.
Есть ли у кого-нибудь идеи о том, в чем проблема?
Спасибо

+0

Вы заметили, что вы вызываете 'QNetworkManager :: get' вместо' QNetworkManager :: post'? [Здесь] (http://stackoverflow.com/questions/18439138/make-http-post-request-with-a-list-of-named-parameters-in-qt/18439557#18439557) был вопрос о запросе POST с именованными параметрами – jbh

ответ

4

У вас есть цикл событий где-то еще в вашем коде?

Если нет, то попробуйте следующее:

QEventLoop loop; 

m_NetworkAccessMNGR = new QNetworkAccessManager(this); 
QNetworkRequest networkRequest; 
networkRequest.setUrl(QUrl("http://www.sample.com/test.php?un=user&pass=123345")); 

QNetworkReply *reply = m_NetworkAccessMNGR->get(networkRequest); 

connect(reply, SIGNAL(readyRead()), 
     this, SLOT(slotReadyRead())); 
connect(reply, SIGNAL(finished()), 
     this, SLOT(slotOnRequestCompleted())); 
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), 
     this, SLOT(slotOnRequestError(QNetworkReply::NetworkError))); 
connect(reply, SIGNAL(sslErrors(QList<QSslError>)), 
     this, SLOT(slotSslErrors(QList<QSslError>))); 

connect(reply, SIGNAL(finished()), &loop, SLOT(quit())); 
loop.exec(); 

ли эту работу лучше?

+1

Yeap, с QEventLoop. – Lucian

 Смежные вопросы

  • Нет связанных вопросов^_^