我的代码存在一些问题,我会尽力解释。
好吧,我想构建一种机器人来自动完成网站中的某项任务(www.milanuncios.com)。 我登录后需要获取源文件,这样我就可以为我的宣布保存一些参考资料,所以问题出现了
我使用QT,使用C ++和QNetworkAccessManager。 我设法从网页www.milanuncios.com/mis-anuncios/下载源文件,但你可以看到这是一个登录表单。
登录后,它会刷新并显示宣布,我需要在登录后下载文件,或者我没有得到任何内容。
好吧,我尝试对表单进行POST,如下所示我可能已登录:
QUrl url("http://www.milanuncios.com/mis-anuncios/");
QNetworkRequest request(url);
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
QUrlQuery params;
params.addQueryItem("email","htful1989@teleworm.us");
params.addQueryItem("contra","4hwk");
this->manager->post(request, params.toString(QUrl::FullyEncoded).toUtf8());
QObject::connect(manager, SIGNAL(finished(QNetworkReply *)), this, SLOT(replyFinished(QNetworkReply * )));
一旦我完成了,我使用GET下载源代码,但它总是相同的(登录表单源,而不是宣布用户区域......)
this->reply = manager->get(QNetworkRequest(QUrl("http://www.milanuncios.com/mis-anuncios/")));
QObject::connect(manager, SIGNAL(finished(QNetworkReply *)), this, SLOT(replyFinished(QNetworkReply * )));
我有以下信号/插槽:
void MainWindow::replyFinished(QNetworkReply *reply) {
qDebug() << ("HolaREPLY");
qDebug() << "start test";
qDebug() << reply->readAll();
qDebug() << "end test";
}
我不知道自己做错了什么,也许还有很多事情,所以我来找你一些事......提前谢谢:)
PD:参数查询的表单值:
编辑:解决方案由迈克提供,我没有在完成()SLOT中调用GET,现在它正在工作,但我还有另一个问题:我的表格并不好,我的意思是,我正在使用&#34;电子邮件&#34;和&#34;反对&#34;作为字段,但这些没有属性名称,只有ID = email和ID = contra。
如何选择?
我上传了一张图片:(黄色是我需要的字段,红色是错误的字段)