http请求获取response中的http状态码
最近转行学习Qt,不得不说,还是Java写得舒服。 回到正题,在使用Qt时,可能会使用network模块来进行网络操作,比如tcp、http请求,我将在下文讲述如何通过Qt进行http请求以及处理响应的相关操作。
使用QNetworkAccessManager
Qt通过QNetworkAccessManager来管理网络请求,Qt提供了QNetworkCookieJar来管理Cookie,当然你可以通过手工管理request的header来管理Cookie,不过相对麻烦。
QNetworkAccessManager *manager = new QNetworkAccessManager;
// 添加了QNetworkCookieJar
// 可以自己写个类继承QNetworkCookieJar,调用QNetworkCookieJar的allCookies函数来获取cookie列表
manager->setCookieJar(&cookieJar);
由于QNetworkAccessManager的请求回传使用的是异步传输,所以可以用Qt信号槽机制来进行response的获取。
// 这里使用QEventLoop来进行循环等待
QEventLoop *loop = new QEventLoop;
connect(manager, SIGNAL(finished(QNetworkReply*)), loop, SLOT(quit(