我使用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,…