使用 QNetworkReply 超时请求 POST

问题描述

我正在使用基于 4.8 版的 QtCreator 为使用 linux 操作系统的设备开发应用程序。

我正在尝试在 QT 中制作 POST 订单 我正在使用以下库

#include <QNetworkAccessManager>
#include <qnetworkrequest>
#include <QNetworkReply>

我有以下代码片段

{
    QString msg;
    QString url = "myURL";
    qnetworkrequest request = qnetworkrequest(QUrl(url));
    request.setHeader(qnetworkrequest::ContentTypeHeader,QVariant("application/json; charset=UTF-8"));

    QString message = QString("{\"message\" : %1}").arg("\"hello\"");

    QByteArray AliveJson = message.tolatin1();

    reply = manager->post(request,AliveJson);
    
    connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(finished(QNetworkReply*)));
}

void page100::finished(QNetworkReply *r)
{
    qDebug()<<"MetoD FINISHED CALLED!";
    QString msg;
    qDebug()<< r;
    qDebug()<< "-----------------------------";
    qDebug()<< reply;
    if (r == reply) {
        int status = r->attribute(qnetworkrequest::HttpStatusCodeAttribute).toInt();
        if (r->error() == QNetworkReply::NoError && status >= 200 && status < 300) {
            msg = QString("successfull reply (%1)").arg(status);//200
            qDebug()<<reply->readAll();
        } else {
            msg = QString("failure reply (%1),%2").arg(status).arg(r->errorString());
            qDebug()<<msg;
        }
        reply = NULL;
    } else {
        msg = QString("unkNown reply,url=%1").arg(r->url().toString());
       qDebug()<<msg;
    }
    r->deleteLater();
    ui->plainTextEdit->setPlainText(ui->plainTextEdit->toPlainText() + msg);
    qDebug()<<msg;
}

我总是收到以下错误

failure reply(0),socket operation timed out

我尝试创建一个新的 url 进行通信,但我一直收到同样的错误

设备已正确连接到互联网。我已经做了ping程序,设备通信正常

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)