QHttp
將發送一組信號來通知請求的狀態。例如,您可以將requestFinished()
信號連接到將處理該信號並開始第二個請求的插槽。
Idea在僞QT
//possibly in constructor
connect(myHttp, SIGNAL(requestFinished(int, bool)),
this, SLOT(requestHandler(int, bool)))
//first call somewhere
firstReqId = myHttp->get("first.com", buff);
void requestHandler(int id, bool error)
{
if (error)
panic();
if(id == firstReqId) {
process(buff);
secondReqId = myHttp->get("second.com", buff2);
}
if (id == secondReqId) {
process(buff2);
sock.connectToHost("server.com", "5222"); //etc
}
}
或作爲其他的解決方案,你可以巧妙地使用鎖定結構,如QMutex
,並通過實現自己的禁止請求方法包裝QHTTP,這將允許在時間一個請求。但我認爲在你的情況下,第一種方法更好。
來源
2010-09-26 11:31:48
doc