2014-06-21 73 views
0

我试图实现http://developer.nokia.com/community/wiki/Creating_an_HTTP_network_request_in_Qt和我的代码编译没有错误,但不起作用。我在“QNetworkReply * reply = nam-> get(QNetworkRequest(url))”中回复了一条警告;“没有被使用。我确信这是我的错误,我没有正确设置HTTP GET,但我不确定如何更正它。QNetworkAccessManager无法正确执行

//coreEng.h

#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 

//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(); 

} 

//main.cpp

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

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

    coreEng mConnect; 
    mConnect.connect(); 

    return a.exec(); 
} 
+0

尝试使用调试器。 – dbanet

+0

@dbanet没有数据包离开NIC – brad

回答

0

改变无效coreEng :: URL(QNetworkReply *) coreEng :: url() void url(QNetworkReply * reply); void url(); 增加了mConnect.url();到main.cpp,我可以看到带有wireshark的http数据包退出NIC并开始会话。