Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QNetworkAccessManager无法正确执行_C++_Qt_Qnetworkaccessmanager - Fatal编程技术网

C++ QNetworkAccessManager无法正确执行

C++ QNetworkAccessManager无法正确执行,c++,qt,qnetworkaccessmanager,C++,Qt,Qnetworkaccessmanager,我正在尝试实现,我的代码编译没有错误,但不起作用。我有一个警告,没有使用“QNetworkReply*reply=nam->get(QNetworkRequest(url));”中的回复。我确信这是我的错误,我没有正确设置我的HTTP GET,但我不确定如何更正它 //科雷恩 #ifndef COREENG_H #define COREENG_H #include <QObject> #include <QNetworkAccessManager> class core

我正在尝试实现,我的代码编译没有错误,但不起作用。我有一个警告,没有使用“QNetworkReply*reply=nam->get(QNetworkRequest(url));”中的回复。我确信这是我的错误,我没有正确设置我的HTTP GET,但我不确定如何更正它

//科雷恩

#ifndef COREENG_H
#define COREENG_H
#include <QObject>
#include <QNetworkAccessManager>

class coreEng : public QObject
{
    Q_OBJECT
        public:
            //coreEng(QObject);
            coreEng(QObject *parent = 0) :
                QObject(parent)
                {
                    nam = new QNetworkAccessManager();
                }

        private slots:

        public slots:
            void connect();
            void url(QNetworkReply *reply);
            void finishedSlot(QNetworkReply* reply);
        private:
            QNetworkAccessManager* nam;
};

#endif // COREENG_H
\ifndef COREENG\u H
#定义COREENG_H
#包括
#包括
coreEng类:公共QoObject
{
Q_对象
公众:
//科雷恩(QoObject);
coreEng(QObject*parent=0):
QObject(父对象)
{
nam=新的QNetworkAccessManager();
}
专用插槽:
公众时段:
void connect();
无效url(QNetworkReply*回复);
作废finishedSlot(QNetworkReply*reply);
私人:
QNetworkAccessManager*nam;
};
#endif//COREENG_H
//coreEng.cpp

"coreeng.h"
#include <QNetworkAccessManager>
#include <QUrl>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QImageReader>

void coreEng::connect(){
    QObject::connect(nam, SIGNAL(finished(QNetworkReply*)),
    this, SLOT(finishedSlot(QNetworkReply*)));
}

void coreEng::url(QNetworkReply*){
    QUrl url("http://www.nyctelecomm.com");
    QNetworkReply* reply = nam->get(QNetworkRequest(url));
}

void coreEng::finishedSlot(QNetworkReply* reply){

    QVariant statusCodeV = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);

    QVariant redirectionTargetUrl = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);

    if (reply->error() == QNetworkReply::NoError)
    {

        QImageReader imageReader(reply);
        QImage pic = imageReader.read();

        QByteArray bytes = reply->readAll();  // bytes
        QString string(bytes); // string
    }

    else
    {

    }

    //delete reply();

}
“coreeng.h”
#包括
#包括
#包括
#包括
#包括
void coreEng::connect(){
QObject::connect(nam,信号)(完成(QNetworkReply*),
这个插槽(finishedSlot(QNetworkReply*));
}
void coreEng::url(QNetworkReply*){
QUrl url(“http://www.nyctelecomm.com");
QNetworkReply*reply=nam->get(QNetworkRequest(url));
}
void coreEng::finishedSlot(QNetworkReply*reply){
QVariant statusCodeV=回复->属性(QNetworkRequest::HttpStatusCodeAttribute);
QVariant redirectionTargetUrl=回复->属性(QNetworkRequest::RedirectionTargetAttribute);
如果(回复->错误()==QNetworkReply::NoError)
{
QImageReader imageReader(回复);
QImage pic=imageReader.read();
QByteArray bytes=reply->readAll();//字节
QString字符串(字节);//字符串
}
其他的
{
}
//删除回复();
}
//main.cpp

#include <QCoreApplication>
#include "coreeng.h"

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    coreEng mConnect;
    mConnect.connect();

    return a.exec();
}
#包括
#包括“coreeng.h”
int main(int argc,char*argv[])
{
qcorea应用程序(argc、argv);
coreEng McConnect;
mConnect.connect();
返回a.exec();
}
将void coreEng::url(QNetworkReply*)更改为void coreEng::url() 更改的无效url(QNetworkReply*reply);使url()无效;
添加了mConnect.url();到main.cpp,我可以看到带有wireshark的http数据包退出NIC并开始会话。

尝试使用调试器。@dbanet没有数据包离开NIC