2013-05-10 5 views
0

내가 HTTP 요청을 보내 처리 할 QNetworkAccessManager를 사용을 보내 해달라고 :.Qt는 : QNetworkAccessManager 요청

void f() 
{  
    QNetworkRequest request(QUrl(address));  
    QNetworkAccessManager mng; 
    mng.get(request); 
    //QEventLoop().exec(); 
    } 
void main() 
{ 
    ... 
    f(); 
    ... 
} 

이 없으면, 라인 QEventLoop() 간부를(); 응용 프로그램이 요청을 전송하지 않습니다. 하지만 QEventLoop(). exec(); 라인을 사용하면됩니다. 나는 왜 이해하지 못했습니까?
저를 치울 수 있습니까?
대단히 감사합니다! (P/S : Sending an HTTP request using QNetworkAccessManager :이 링크를 보았다)

답변

0
void f()  
{   
    static QNetworkRequest request(QUrl(address));   
    static QNetworkAccessManager mng; 
    mng.get(request); 
} 
void main() 
{ 
    ... 
    f(); 
    ... 
} 

내가 QNetworkAccessManager가 비동기 및 요청을 보낼 수있는 시간이 필요하기 때문입니다 생각합니다. 하지만, url, query, ...는 범위를 벗어나면 파괴됩니다. - QNetworkAccessManager가 요청 (QEventLoop(). exec(); 사용)을 보내거나 require, url, query ...가 지속되도록 할 때 범위에 필요합니다 (정적으로 선언).

관련 문제