Qt Post请求正在执行但失败
Qt Post request executing but failing
不知何故,我在使用Qt时遇到了问题。我正在尝试向服务器发送 POST 请求。
在我制作了一个带有 Windows 标头的 C++ 程序来执行工作正常的 POST 请求之前,但现在我想为该程序制作一个 GUI。
我100%确定服务器端的php代码没问题,我遵循了Qt和Stack Overflow上的示例,但是我使用Qt的数据库中没有收到任何数据。
这是开机自检代码:
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());
}
我目前对自己做错了什么一无所知。
任何可以帮助我的人都是为了工作中的一个项目。
如果你刚刚从Windows C++转到Qt C++。你有QApplication吗,你在主函数中调用exec((吗?
如果没有事件循环,Qt IO 类将无法工作。听起来您要么没有主事件循环,要么在不同的线程中没有主事件循环。
相关文章:
- libprotobuf 检查在 Mac OS 上执行程序时失败
- 无法调用成员函数,尝试正确执行此操作仍然失败
- 使用 execv 从C++代码执行的 Linux 脚本失败
- 使用 QT 执行二进制构建失败
- 如果我在下面的代码中使用 list 而不是 vector,为什么在我尝试在迭代器之间执行减法的行中编译失败?
- 程序'main.exe'运行失败:指定的可执行文件不是此操作系统平台的有效应用程序
- 尝试减少执行时间,但失败
- Qt Post请求正在执行但失败
- C 如何停止对象构建失败的执行
- 任务 ":app:ndkBuild" 执行失败。>进程'Command'完成,退出值为非零 2
- 对于循环执行失败,因为变量我不会递增,为什么?
- 使用通搭指针时在给定位置执行失败的原因,而不是更早?
- 几次调用后,外部程序的执行失败
- 状态:从CUDA库调用cusolverDdgeqrf时执行失败
- 使用多台计算机执行失败
- DLL_PROCESS_ATTACH在windows7c++上执行失败
- QNetworkAccessManager执行失败
- ADO命令执行失败
- c++ MFC -在CDialog::OnSize事件(GetWindowRect)上没有抛出运行时错误的代码执行失败
- 运行时错误-函数执行失败后的代码-c++