QObject派生クラスからQNetworkAccessManagerを使用してリクエストを送信しようとすると問題が発生します。
まず、コンストラクターで次のことを行います。
QObject::connect( &mAccessManager, SIGNAL( finished( QNetworkReply* ) ), this, SLOT( requestFinished( QNetworkReply* ) ) );
次に、リクエストを送信したい場合は、次のようにします。
QNetworkRequest checkLogin( QUrl( address ) );
checkLogin.setHeader( QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded" );
mByteArray = QByteArray( "POST \"client\" : oxres" );
QNetworkReply* pReply = mAccessManager.post( checkLogin, mByteArray );
この時点で、数秒間待ってから、クラスのスロットrequestFinishedへの応答を受け取ることを期待しています。ただし、呼び出されません。
私は自分が間違っていることについて途方に暮れています。誰かアイデアがありますか?(私はそれがばかげて単純なものだと確信しています)。
編集:わかりました、これは非常に奇妙です。バックグラウンドでwiresharkがパケットを収集していますが、そのPOSTリクエストを生成すると、wiresharkでは何も起こりません。では、なぜ送信しないのですか?
編集2:うーん、問題は私がhttps://アドレスにリクエストを送信することにあるようです...なぜそうなるのでしょうか??