Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

QNetworkReply empty on some windows computer [Qt 5.2.1 et mingw4.8 32bit]



  • Hi everyone,

    i have a simple GUI application which has to call a php script on a remote server. Everything works fine when i launch the app from Qt creator. I did an installer for my App and I installed it on 5 machines. Four of them are on windows7 64 bits and one is on windows8.1 32bits.
    All the GUI is displayed and everything seems to be good, but on two machines(1 windows7 and 1 windows 8.1) the reply from the php script is empty. I can't find why, always the same machines have empty reply.

    i use Qt 5.2.1 and mingw4.8 32bit to compile in release mode. My installer include the dll as fallows:
    Source: "C:\Users\user\Documents\svn\project\build-project-Desktop-Release\release\project.exe"; DestDir: "{app}"

    Source: "C:\Qt\Qt5.2.1\5.2.1\mingw48_32\plugins\platforms\qwindows.dll"; DestDir: "{app}\platforms"

    Source: "C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin\Qt5Core.dll"; DestDir: "{app}"
    Source: "C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin\Qt5Gui.dll"; DestDir: "{app}"
    Source: "C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin\Qt5Widgets.dll"; DestDir: "{app}"
    Source: "C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin\Qt5Network.dll"; DestDir: "{app}"

    Source: "C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin\libgcc_s_dw2-1.dll"; DestDir: "{app}"
    Source: "C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin\libwinpthread-1.dll"; DestDir: "{app}"
    Source: "C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin\libstdc++-6.dll"; DestDir: "{app}"
    Source: "C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin\icuin51.dll"; DestDir: "{app}"
    Source: "C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin\icuuc51.dll"; DestDir: "{app}"
    Source: "C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin\icudt51.dll"; DestDir: "{app}"

    Source: "C:\Qt\Qt5.2.1\Tools\QtCreator\bin\libEGL.dll"; DestDir: "{app}"
    Source: "C:\Qt\Qt5.2.1\Tools\QtCreator\bin\libGLESv2.dll"; DestDir: "{app}"
    Source: "C:\Qt\Qt5.2.1\Tools\QtCreator\bin\D3DCompiler_43.dll"; DestDir: "{app}"

    I build my QNetworkAccessManager in the constructor as fallow:
    @manager = new QNetworkAccessManager(this);
    QObject::connect(this->manager,SIGNAL(finished(QNetworkReply*)),
    this,SLOT(monTraitement(QNetworkReply*)));@

    Then i have a slot whenthe user press on a button which create the request as fallow:
    @QSslConfiguration config = QSslConfiguration::defaultConfiguration();
    //config.setProtocol(QSsl::TlsV1_0);

    QNetworkRequest request(QUrl("my_url.php"));
    request.setSslConfiguration(config);
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");

    QByteArray params="param1=";
    params.append(this->getSetting("param1").toString());
    params.append("&param2=");
    params.append(this->getSetting("param2").toString());
    params.append("&param3=");
    params.append(this->getSetting("param3").toString());

    manager->post(request,params);@

    And finally the slot when the request is finished which just display the reply here:
    @void MainWindow::monTraitement(QNetworkReply* reply){
    QString licResp = reply->readAll();
    ui->textBrowser->append(licResp);
    }@

    i tried to:

    • include more librairies and platforms like Qt5Qml.dll, Qt5Quick.dll and platforms\qminimal.dll
    • change the ssl protocol and let it to the default protocol
    • check the microsoft c++ librairies installed on the computer
    • check the .NET versions installed
    • use a bad url, the app display the server error on the 3 machines that work and nothing on the 2 others

    Pls help :) Best regards


Log in to reply