2013-10-04 7 views
-1

나는 PHP에 정보를 POST하고 그 결과를 얻고 싶다. 내 POST가 같아야합니다 : www.sample.com/test.php?un=user & 패스 = 123,345 내가 성공하지 모든 변종을 시도하고있다 :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 :: post' 대신'QNetworkManager :: get'을 호출한다는 것을 알고 계셨습니까? [Here] (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