Почему-то у меня проблемы с Qt.
Я пытаюсь отправить POST-запрос на сервер.
До того, как я создал программу на С ++ с заголовками Windows для выполнения запроса POST, который работал нормально, но теперь я хочу создать графический интерфейс для программы.
Я на 100% уверен, что код php на стороне сервера в порядке, и я следовал примерам Qt и Stackoverflow, но я не получаю никаких данных в моей базе данных с помощью Qt.
Вот код POST:
HttpPOST.h
#ifndef HTTPPOST_H
#define HTTPPOST_H
#include <QObject>
#include <QtNetwork>
#include <QHttpMultiPart>
class HttpPOST : public QObject
{
Q_OBJECT
public:
HttpPOST(QString url);
void postData(QList<QString> parameter, QList<QString> value);
const QString EQUALS = "=";
const QString AND = "&";
signals:
public slots:
void onFinish(QNetworkReply *reply);
private:
QNetworkAccessManager * manager;
QUrl url;
QByteArray data;
};
#endif // HTTPPOST_H
HttpPOST.cpp
#include "httppost.h"
HttpPOST::HttpPOST(QString url)
{
this->url = QUrl(url);
}
void HttpPOST::postData(QList<QString> parameter, QList<QString> value)
{
data.clear();
for (int i=0; i<parameter.size(); i++) {
data.append(parameter[i]);
data.append(EQUALS);
data.append(value[i]);
if(i < parameter.size()-1){data.append(AND); }
}
manager = new QNetworkAccessManager(this);
connect(manager,
SIGNAL(finished(QNetworkReply*)),
this,
SLOT(onFinish(QNetworkReply*)));
connect(manager,
SIGNAL(finished(QNetworkReply*)),
manager,
SLOT(deleteLater()));
QHttpMultiPart *http = new QHttpMultiPart(QHttpMultiPart::FormDataType, this);
QHttpPart receiptPart;
receiptPart.setHeader(QNetworkRequest::ContentDispositionHeader,
QVariant("form-data; name=\"data\""));
receiptPart.setBody(data);
http->append(receiptPart);
manager->post(QNetworkRequest(url), http);
}
void HttpPOST::onFinish(QNetworkReply *reply)
{
qDebug("POST request finished!");
qDebug(reply->readAll());
}
В настоящее время я не знаю, что я делаю неправильно. : C <-Очень грустно! </p>
Любой, кто может помочь мне в проекте @ work.