Название: Потоки и Https запросы в Qt
Отправлено: Narg от Июнь 21, 2013, 17:10
Собственно сабж : Пишу многопоточное приложение - тестовое , суть в том , что каждый поток должен делать запросы используя SSL соединение ...Ну , я грубо говоря - просто игнорирую ошибки ;)(sslignoreerrors) Однако , почему то выходи так , что каждый поток делат лишь по 1 успешному запросу ...Остальные - ничего не несут ... Код : #include "myclass.h" #include "mythread.h"
unsigned int A = 0;
MyThread :: MyThread( QObject * parent ) : QThread( parent ) { moveToThread(this); m_pNAM = new QNetworkAccessManager();
#ifndef QT_NO_SSL connect( m_pNAM, SIGNAL( sslErrors( QNetworkReply*, QList<QSslError> ) ), this, SLOT( sslErrors( QNetworkReply*, QList<QSslError>) ) ); #endif
m_pNAM -> moveToThread(this);
m_pRequest = new QNetworkRequest();
m_pRequest -> setRawHeader( "Accept", "text/xml, application/xml, application/xhtml+xml, text/html;q=0.9, text/plain;q=0.8, text/css, image/png, image/jpeg, image/gif;q=0.8, application/x-shockwave-flash, video/mp4;q=0.9, flv-application/octet-stream;q=0.8, video/x-flv;q=0.7, audio/mp4, application/futuresplash, */*;q=0.5" ); m_pRequest -> setRawHeader( "Accept-Encoding", "gzip, deflate" ); m_pRequest -> setRawHeader( "UserAgent", "Mozilla/5.0 (Windows; U; ru-RU) AppleWebKit/533.19.4 (KHTML, like Gecko) AdobeAIR/3.6" ); m_pRequest -> setRawHeader( "Host", "lq.eu.lol.riotgames.com" );
m_pRequest ->setHeader( QNetworkRequest :: ContentTypeHeader, "application/x-www-form-urlencoded" );
connect( m_pNAM, SIGNAL( finished ( QNetworkReply *)), this, SLOT( httpReadyRead(QNetworkReply * ) ) ); }
void MyThread :: httpReadyRead( QNetworkReply * m_Reply ){ QString answer = QString :: fromUtf8( m_pReply -> readAll( ) ); qDebug() << answer; //if( answer.size() > 108 ) // MyClass :: updateStatus( ++A ); }
void MyThread::run( ){
for( unsigned int i = 0; i < Source.size(); i++ ){ Source[i].resize( Source[i].size() - 2 ); QByteArray BA ; BA.append( Source[i] ); m_pReply = m_pNAM -> post( QNetworkRequest( QUrl( "https://lq.eu.lol.riotgames.com/login-queue/rest/queues/lol/authenticate" ) ), BA ); }
exec(); }
#ifndef QT_NO_SSL
void MyThread :: sslErrors( QNetworkReply*, const QList<QSslError> &errors ) { m_pReply -> ignoreSslErrors( ); }
#endif Ну , вот впринципе , как то так ... Беда ... Уже день мучаюсь - и никак не могу понять что к чему ... Если слать запросы на обычный http - то все выходи хорошо :)А вот так - не очень :)
|