@volia7

Как отправить http запрос с помощью QNerworkAccessManager в с++?

Здравствуйте, пишу программу на С++ в qtcreator, нужно получить данные с сервера, для чего я пытаюсь использовать qnetworkaccessmanager, прописал заголовочные файлы, взял код с примера, но creator ругается на код,
QNetworkAccessManager *manager = new QNetworkAccessManager(this); connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
manager->get(QNetworkRequest(QUrl("http: //qt.nokia.com")));
Что я делаю не так?
  • Вопрос задан
  • 631 просмотр
Решения вопроса 1
@neosapient
VC9, VC11, QT4, QT5, MySQL
Как знать, может ваш код работоспособен за исключением одной маленькой ошибки - такого url как 'http: //qt.nokia.com' более не существует. Попробуйте обращаться к 'www.qt.io'

net_test.pro
QT += core
QT -= gui
QT += network
CONFIG += c++11

TARGET = net_test
CONFIG += console
CONFIG -= app_bundle

TEMPLATE = app

SOURCES += main.cpp \
    test.cpp

HEADERS += \
    test.h


test.h
#ifndef QXTEST_H
#define QXTEST_H

#include <QObject>

class QNetworkReply;

class QxTest: public QObject
{
    Q_OBJECT
public:
    QxTest();
public slots:
    void replyFinished(QNetworkReply* rep);
};

#endif // QXTEST_H


test.cpp
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QUrl>
#include <QNetworkAccessManager>
#include "test.h"

QxTest::QxTest()
{
    QNetworkAccessManager *manager = new QNetworkAccessManager(this);
    connect(manager, SIGNAL(finished(QNetworkReply*)),
            this, SLOT(replyFinished(QNetworkReply*)));

    manager->get(QNetworkRequest(QUrl("http://www.qt.io")));

}

void QxTest::replyFinished(QNetworkReply* rep)
{
    qDebug() << rep->readAll();
}


main.cpp
#include <QCoreApplication>
#include "test.h"

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QxTest test;
    return a.exec();
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rou1997
@Rou1997
На что именно ругается? В окне Проблемы посмотрите лог ошибок.
Слот (обработчик) replyFinished у вас есть? Его тоже надо было с примера взять.
Если "ругается" на сами классы QNetworkAccessManager и т.п., то нужно соответствующие include подключить, в интернете найти какие, а если "ругается" на include, то, в свою очередь, нужно библиотеку ("либу") добавить в файле .pro
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы