Ошибка сегментации QNetworkCookieJar (QT 5.8)

когда я устанавливаю банку печенья своему сетевому менеджеру, я получаю SIGSEGVКак мне установить cookiejar для моего сетевого менеджера?
// Я использую QT5.8 в Windows 10 с Mingw
PS: я пробовал много примеров, но у меня такие же результаты.

Файл класса:

#include "httpcontroller.h"#include <QtNetwork/QNetworkAccessManager>
#include <QtNetwork/QHttpMultiPart>
#include <QtNetwork/QNetworkRequest>
#include <QtNetwork/QNetworkReply>
#include <QtNetwork/QHttpPart>
#include <QFile>
#include <QEventLoop>
HttpController::HttpController(QObject *parent) : QObject(parent)
{
cookies = new QNetworkCookieJar();
manager = new QNetworkAccessManager(parent);
manager->setCookieJar(cookies);
}

QString HttpController::Get(const QString &url)
{
QNetworkRequest request ;
request.setUrl(QUrl(url));
QNetworkReply * reply = manager->get(request);
QEventLoop loop ;
connect(reply,SIGNAL(finished()),&loop,SLOT(quit()));
connect(reply,SIGNAL(error(QNetworkReply::NetworkError)),&loop,SLOT(quit()));
loop.exec();
if(reply->error()){
return QString("Error");
}else{
QString response = QString(reply->readAll()) ;
reply->deleteLater();
return response ;
}
}

QString HttpController::Post(const QString &url, QHttpMultiPart *multipart)
{
QNetworkRequest request ;
request.setUrl(QUrl(url));
QNetworkReply * reply = manager->post(request,multipart);
QEventLoop loop ;
connect(reply,SIGNAL(finished()),&loop,SLOT(quit()));
connect(reply,SIGNAL(error(QNetworkReply::NetworkError)),&loop,SLOT(quit()));
loop.exec();
if(reply->error()){
return QString("Error");
}else{
QString response = QString(reply->readAll()) ;
reply->deleteLater();
return response ;
}
}

Заголовочный файл:

#ifndef HTTPCONTROLLER_H
#define HTTPCONTROLLER_H

#include <QObject>
#include <QHttpMultiPart>
#include <QNetworkCookieJar>
#include <QNetworkAccessManager>
class HttpController : public QObject
{
Q_OBJECT
public:
explicit HttpController(QObject *parent = 0);
QString Get(const QString& url);
QString Post(const QString& url , QHttpMultiPart *multipart);
signals:

public slots:
private:
QNetworkCookieJar *cookies;
QNetworkAccessManager *manager ;

};

#endif // HTTPCONTROLLER_H

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]