Qt: QNetworkAccessManager不发送请求



我使用QNetworkAccessManager来处理发送http请求:

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

如果没有QEventLoop().exec();行,应用程序将不会发送请求。但是如果有QEventLoop().exec();行,它会。我不明白为什么?
你能帮我澄清一下吗?
非常感谢!(P/s:我已经看到了这个链接:使用QNetworkAccessManager发送HTTP请求)

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

我认为这是因为QNetworkAccessManager是异步的,需要时间来发送请求。但是require url query…在超出作用域时被销毁。->当QNetworkAccessManager发送请求时,我们需要在作用域中(使用QEventLoop().exec();)或者让require, url, query,…

最新更新