hi all. im trying to download web pages with QHttp with more than one thread.... here is the my... when the code arrive
str-> http.readall();
the application Hang... how knows whats the problem
mainwindows.cpp
Code:
#include "mainwindow.h" #include "ui_mainwindow.h" #include<QtNetwork/QHttp> #include<QDebug> #include<QMutex> ui(new Ui::MainWindow) { ui->setupUi(this); path[10]; host = "www.google.com"; for(int i=0;i<10;i++) } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButton_clicked() { qDebug()<<"A"; for(int i=0;i<10;i++) { qDebug()<<"B"; qDebug()<<reqHeader->toString(); connect(myHttp,SIGNAL(requestFinished(int,bool)),this,SLOT(dlwebpage(int,bool))); connect(myHttp,SIGNAL(responseHeaderReceived(QHttpResponseHeader)),this,SLOT(dlResPonseHeader(QHttpResponseHeader))); int a = myHttp->request(*reqHeader); qDebug()<<QString::number(a); qDebug()<<"C"; } qDebug()<<"Z"; } void MainWindow::dlwebpage(int id,bool error) { QMutex mutex; mutex.lock(); qDebug()<<QString::number(id)<<" ---- " << error; QHttp *http; http = map[id]; qDebug()<<"D"; QString str; qDebug()<<"F"; str = http->readAll(); qDebug()<<"E"; mutex.unlock(); } { QMutex M; M.lock(); qDebug()<<myRespHeader.toString(); M.unlock(); }
mainwindow.h
Code:
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include<QHttp> #include<QHttpResponseHeader> #include<QMap> namespace Ui { class MainWindow; } { Q_OBJECT public: QString host; QHttp *myHttp; QHttpRequestHeader *reqHeader; QMap<int,QHttp*> map; ~MainWindow(); private slots: void on_pushButton_clicked(); void dlwebpage(int id, bool error); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H
