Привет я пытаюсь отправить запрос HTTP GET и получить результат с функцией. Но я получаю эту ошибку:
нет подходящей функции для вызова HttpNetworkRequest :: connect (QNetworkAccessManager *&, const char *, RequestFinishFunction&, const
символ *)»
функция подключения находится в этом файле HttpNetworkRequest.cpp
#include "HttpNetworkRequest.hpp"#include <QObject>
#include <QIODevice>
#include <QDir>
#include <bb/cascades/Application>
#include <bb/cascades/QmlDocument>
#include <bb/cascades/AbstractPane>
#include <bb/cascades/XmlDataModel>
#include <RequestFinishFunction.hpp>
using namespace bb::cascades;
HttpNetworkRequest::HttpNetworkRequest(bb::cascades::Application *app)
: QObject(app)
{
QNetworkRequest networkRequest = QNetworkRequest();
networkRequest.setUrl(QUrl("http://www.blackberry.com"));
RequestFinishFunction req;
QNetworkAccessManager *networkAccessManager = new QNetworkAccessManager;
bool res = connect(networkAccessManager,SIGNAL(finished(QNetworkReply*)),
req,SLOT(requestFinished()));
Q_ASSERT(res);
Q_UNUSED(res);
networkAccessManager->get(networkRequest);
}
Включенный RequestFinishFunction.hpp
#ifndef REQUESTFINISHFUNCTION_HPP_
#define REQUESTFINISHFUNCTION_HPP_
#include <bb/cascades/ActivityIndicator>
#include <QObject>
#include <QObject>
class RequestFinishFunction : QObject
{
public slots:
void requestFinished(QNetworkReply* reply);
};
#endif /* REQUESTFINISHFUNCTION_HPP_ */
Файл RequestFinishFunction.cpp является
#include <bb/cascades/ActivityIndicator>
#include <QObject>
#include <QObject>
#include <RequestFinishFunction.hpp>
void RequestFinishFunction::requestFinished(QNetworkReply* reply)
{
reply->deleteLater();
}
Синтаксис метода подключения
bool QObject :: connect (const QObject * отправитель, сигнал const char *, const QObject * получатель, метод const char *, Qt :: ConnectionType type = Qt :: AutoConnection)
Мы должны пройти Рекомендации обоих отправителей & получатель.
Вы не отправили справку получателя. У вас есть два варианта сделать это.
1) Отправить ссылку на запрос с помощью & оператор в вызове метода connect
замещать
подключиться (networkAccessManager, SIGNAL (завершено (QNetworkReply *)), req, SLOT (requestFinished ()));
с
подключения (networkAccessManager, SIGNAL (законченный (QNetworkReply *)), &REQ, SLOT (requestFinished ()));
ИЛИ ЖЕ
2) Объявить req как указатель
замещать
RequestFinishFunction req;
с
RequestFinishFunction * req;
Других решений пока нет …